我试图了解multiprocessing相对于threading的优势。我知道 多处理 绕过了全局解释器锁,但是还有什么其他优点, 线程 不能做同样的事情吗?
模块使用threading线程,multiprocessing模块使用进程。不同之处在于线程运行在相同的内存空间中,而进程具有单独的内存。这使得在具有多处理的进程之间共享对象变得有点困难。由于线程使用相同的内存,因此必须采取预防措施,否则两个线程将同时写入相同的内存。这就是全局解释器锁的用途。
threading
multiprocessing
生成进程比生成线程要慢一些。