有可能添加多处理问题的队列,有没有办法检测每个CPU的可用线程数,类似于multiprocessing.cpu_count()
?我从一个池中异步调用main()
函数,每个核心有一个进程可用(如果processes=None
则默认行为)。
items = [2,4,6,8,10]
pool = multiprocessing.Pool(processes=args.cores)
results = [pool.apply_async(main, (item,), {threads=1}) for item in items]
但是,我希望每个main()
调用都可以通过显式设置threads
arg来利用所有可用线程。
有没有办法做到这一点,还是太平台/系统特定?也许可以通过神秘的from multiprocessing.pool import ThreadPool
,通过与线程模块或其他方式结合来完成它?
感谢任何方向,谢谢!