我有一个与Linux中的线程实现相关的查询.
Linux没有明确的线程支持.在用户空间中,我们可能使用线程库(如NPTL)来创建线程.现在,如果我们使用NPTL,它支持1:1映射.
内核将使用该clone()函数来实现线程.
假设我创建了4个线程.那意味着:
task_struct.task_struct,将根据克隆的参数提供共享资源(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND).现在我有以下查询:
我知道线程用于多任务处理并且它们重量轻.但我怀疑的是,我说我需要一个没有任何多任务的过程.我刚刚创建了一个流程.现在CPU会将单个线程关联到进程,还是单独执行进程而不需要线程?
请澄清.
问候,哈里什
只是一个简单的问题,如果我克隆一个进程,克隆进程的PID是一样的,是吗?fork()创建一个PID不同的子进程,但其他一切都是相同的.Vfork()使用相同的PID创建子进程.Exec用于将当前正在执行的进程更改为其他进程.
我在所有这些陈述中都是正确的吗?