zelda

 

Symbian下的线程对象

Symbian下的线程对象类有 RThread, DThread, NThread.

RThread是用户层的,DThread是Kernel层的, NThread是nanokernel层的。

用户层的代码要创建一个线程用RThread,内核和驱动里要创建线程用DThread, nano内核层创建一个线程用NThread。

一个RThread就有一个DThread,一个DThread就有一个NThread,反过来不成立.

RThread就像对DThread的封装,句柄,提供给用户使用。

用户层要创建一个线程,RThread::Create会被调用,它会通过系统接口调用DThread::Create,
DThread::Create又会代用DThread::DoCreate,  DThread::DoCreate又会调用NKern::ThreadCreate 创建线程的nanokernel部分。

所以创建一个RTHread就会生成一个DThread,生成一个DThread就会生成一个NThread。
DThread类有一个成员NThread iNThread;
这个成员就是与它关联的NThread。

一个RThread就有一个DThread很容易理解,为什么一个DThread还要有一个NThread呢,
这主要是因为symbian内部最后真正调度的对象是NThread。

posted on 2010-09-19 16:26  zelda  阅读(286)  评论(0编辑  收藏  举报

导航