python多进程实现CPU100%使用
由于昨天的回顾了一些多线程方面的事儿,在群里问了问题:是否可以通过一个脚本控制八个以上的脚本,实现部分资源共享,从而实现八核cpu的100%使用
学习之后,受益颇深。对python的又产生了新的认识
ProcessPoolExecutor介绍如下
它使用进程池来异步地执行调用。 ProcessPoolExecutor 会使用 multiprocessing 模块,这允许它绕过 全局解释器锁(GIL) 但也意味着只可以处理和返回可封存的对象。
multiprocessing介绍如下
multiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 multiprocessing 包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了 全局解释器锁。 因此,multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。
ProcessPoolExecutor实现了文章头部所提问题。通过这种方法,我们可以绕过GIL的限制,实现机器的高效利用,即使遇到CPU密集型的问题任务我们也能轻松解决
下面我从官网抄了段代码,稍加注释后进行参数说明
import concurrent.futures
import math
import time
PRIMES = [
112272535095293,
112582705942171,
112272535095293,
115280095190773,
115797848077099,
1099726899285419