首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子进程与线程的区别

子进程与线程的区别
EN

Stack Overflow用户
提问于 2016-05-25 07:16:40
回答 1查看 7.9K关注 0票数 16

子进程和线程之间有什么区别?我搜索了一下,但找不到合适的答案。上面提供的答案链接区分了进程和线程,但我想知道子进程和线程之间的区别。由于子进程也是一个进程,它将与进程和线程之间的差异大致相同,但我想知道子进程和线程之间是否存在某些特殊的差异,而不是进程和线程之间的差异。

EN

回答 1

Stack Overflow用户

发布于 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://www.quora.com/For-multiprocessing-in-Python-which-library-should-I-use-threading-or-subprocess

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37430255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档