zer*_*lus 3 kernel process linux-kernel
给定进程或线程的任务结构,迭代属于同一进程的所有其他线程的习惯用法是什么?
bof*_*.at 13
Linux不区分进程(任务)和线程.库调用fork()和pthread_create()使用相同的系统调用clone().fork()和pthread_create()之间的区别是传递给clone()的位掩码.此位掩码描述了哪些资源(内存,文件,文件系统,信号处理程序......).有关详细信息,请参阅man clone(2).
无论如何,有一个称为线程组和clone()调用的特殊标志,表示新进程属于同一个线程组.此机制通常用于将使用clone()在位掩码中指定CLONE_THREAD创建的所有任务保持在一起.对于此线程,sched.h包含文件中存在宏*while_each_thread*.它是这样使用的:
struct task_struct *me = current();
struct task_stuct *t = me;
do {
whatever(t);
}while_each_thread(me, t);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3841 次 |
最近记录: |