python多线程和多进程之间的联系
发布时间:2025-11-21 11:20:15

关于多线程的一般解释:
Python的标准库中有两个模块:_thread和threading,_thread是一个低级模块,不支持保护线程。当主线程退出时,所有子线程将被迫退出。threading是一个高级模块,用于包装和支持_thread的保护线程。在大多数情况下,人们只需要使用高级模块threading。
关于多过程的一般解释:
多过程是multiprocesing模块给出远程和本地并发。在multiprocesing库的采用场景中,所有的子过程都是由一个父过程操作的,这个父过程变成了madter过程,它将管理一系列对象状态。如果这个过程退出,子过程很可能处于不稳定状态,那么这个父过程应该尽量少做事。
因此python多线程和多进程的区别如下:
在多线程中,所有子线程的进程编号相同;在多个过程中,不同的子进程编号不同
线程共享内存空间;过程中的内存是独立的
多线程可以共享全局变量,多过程无法实现
可以直接在同一过程的线程之间沟通;如果两个过程想要通信,则必须通过中间代理实现
在同一过程中,一个线程可以控制和操作其他线程;但过程只能操作子过程
创建一个新的线程非常简单;创建一个新的过程需要一次克隆父亲的过程。
