p->pid = pid_nr(pid); p->tgid = p->pid;//普通进程 if (clone_flags & CLONE_THREAD) p->tgid = current->tgid;//线程选择叫起它的进程的tgid作为自己的tgid .... p->group_leader = p;//普通进程 INIT_LIST_HEAD(&p->thread_group); ... if (clone_flags & CLONE_THREAD) { current->signal->nr_threads++; atomic_inc(¤t->signal->live); atomic_inc(¤t->signal->sigcnt); p->group_leader = current->group_leader;//线程选择叫起它的进程作为它的group_leader list_add_tail_rcu(&p->thread_group, &p->group_leader->thread_group); }