子进程和线程之间有什么区别?我搜索了一下,但找不到合适的答案。上面提供的答案链接区分了进程和线程,但我想知道子进程和线程之间的区别。由于子进程也是一个进程,它将与进程和线程之间的差异大致相同,但我想知道子进程和线程之间是否存在某些特殊的差异,而不是进程和线程之间的差异。
发布于 2018-03-11 16:51:48
首先,我们必须了解这个过程是什么,然后线程,如果我们能做到这一点,那么这个问题的答案就会更容易。
进程与线程
process (有时也称为任务)是程序的执行(即正在运行)实例。线程是可以并行运行的轻量级进程,与其父进程(即创建它们的进程)共享地址空间(即一系列内存位置)和其他资源。
以上部分摘自以下链接:switch.html
进程是一个正在执行的程序。例如,当我们用C或C++编写程序并编译它时,编译器会创建一个二进制代码。原代码和二进制代码,都是程序。当我们实际运行二进制代码时,它变成了一个进程。进程是一个“主动”实体,而不是被认为是一个“被动”实体的程序。单个程序可以在多次运行时创建多个进程,例如,当我们多次打开.exe或二进制文件时,许多实例就会开始(创建了许多进程)。
以上部分摘自以下链接:https://www.geeksforgeeks.org/gate-notes-operating-system-process-management-introduction/
进程是程序的一个实例(例如,木星笔记本、Python解释器)。进程生成线程(子进程)来处理子任务(),比如读取击键、加载HTML页面、保存文件。线程驻留在进程中,并共享相同的内存空间。
示例: Microsoft 当您打开Word时,您将创建一个进程。当您开始键入时,进程会生成线程:一个用于读取击键,另一个用于显示文本,一个用于自动保存您的文件,另一个用于突出显示拼写错误。通过生成多个线程,Microsoft利用空闲的CPU时间(等待击键或文件加载),使您更有效率。
以上部分摘自以下链接:https://medium.com/@bfortuner/python-multithreading-vs-multiprocessing-73072ce5600b
Python为程序员提供用于多任务处理的线程和子进程库。两者的目的几乎相同,但我们将选择什么线程或子过程取决于我们想要什么。对于IO绑定应用程序来说,线程处理可能足够好,但对于绑定CPU的应用程序来说则不够好,因为它一次只使用单个CPU核心,因为Python的GIL和一个线程的失败会使整个应用程序崩溃。
Subprocess对IO绑定应用程序和CPU绑定应用程序都有好处,但占用更多内存。可以同时使用所有的CPU内核(并行),而单个进程的故障不会影响其他进程。
https://stackoverflow.com/questions/37430255
复制相似问题