- 论坛徽章:
- 0
|
原帖由 albcamus 于 2006-5-17 13:29 发表
我试了下创建10个线程, ps amx显示的多2个, pstree显示的则正好。 原因不明白。
另外,linux下一个命名混乱的例子就是, 大家还用LinuxThreads这个词来指NPTL,导致有时侯根本分不清楚是什么。
创建10个线程(在main()函数中调用10次pthread_create()的话),
那么用ps axm 显示应该是12个,
其中10个代表达式这10个pthread_create()创建的线程;
1个代表main()这个主线程;
1个代表守护线程,即由glibc创建用来管理和维护这10个线程的线程.这个线程只有你调用了pthread_create()函数就会存在.
pstree 则帮你分析了这个进程及子进程树,他只是显示10个,表示有10个线程.
这点我想是这样理解的,版主应该没啥异意吧.
其实我主要是想证明我的系统使用的是NPTL而非linuxthreads, 根据网络上千篇一律的描述,前者是1:1的模型,即一个用户线程对应一个内核线程,后者是N:1的模型,需要用户态创建一个管理线程来对线程进行管理.
我的问题就是在这,明明用的就是linuxthreads,即N:1的模型呀. |
|