Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 澄清关于多线程的问答_Multithreading - Fatal编程技术网

Multithreading 澄清关于多线程的问答

Multithreading 澄清关于多线程的问答,multithreading,Multithreading,当我学习多线程时,我遇到了问题和答案 问题很清楚。但我不明白为何答案是这样。实际上,我不知道进程是并发运行还是父进程正在等待子进程终止 请给我解释一下 到目前为止,我的想法是: 在第一个fork之后,我们有两个进程和两个线程。 在第二个fork之后,我们有另一个进程和另一个线程 创建线程后,我们有一个额外的线程。 在最后一个fork之后,我们复制了最后一个进程。所以我们有另外两个线程和另一个进程 结果:我们有4个进程和6个线程 创建线程后,我们有一个额外的线程 澄清:在最后一个fork的每个进程

当我学习多线程时,我遇到了问题和答案

问题很清楚。但我不明白为何答案是这样。实际上,我不知道进程是并发运行还是父进程正在等待子进程终止

请给我解释一下

到目前为止,我的想法是: 在第一个fork之后,我们有两个进程和两个线程。 在第二个fork之后,我们有另一个进程和另一个线程 创建线程后,我们有一个额外的线程。 在最后一个fork之后,我们复制了最后一个进程。所以我们有另外两个线程和另一个进程

结果:我们有4个进程和6个线程

创建线程后,我们有一个额外的线程

澄清:在最后一个fork的每个进程中,因为父线程和子线程都调用了thread_create,所以额外增加了两个线程

在最后一个fork之后,我们复制了最后一个进程

不,以前存在的每个流程3在此被分成两半

最后,我们有6个进程,每个进程由各自的线程表示,另外还创建了2个额外线程