from concurrent.futures import ThreadPoolExecutor, as_completed
def main():
with ThreadPoolExecutor(max_workers=16) as producersPool:
for i in [1,2,3,4,5,6,7,8,9,0]:
producersPool.submit((lambda i : print(i))(i))
if __name__ == "__main__":
main()
使用python3运行:
1
我有一个Python程序,它产生许多线程,一次运行4个线程,每个线程执行一个开销很大的操作。伪码:
for object in list:
t = Thread(target=process, args=(object))
# if fewer than 4 threads are currently running, t.start(). Otherwise, add t to queue
但当程序运行时,OS中的活动监视器显示4个逻辑核心中的1个处于100%状态,其余的处于接近0状态。显然,我不能强迫操作系统做任何事情,但我以前从来没有像这样关注多线程代码的性能,所以我想知