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
2
3
4
5
6
7
8
9
0
总是一样。
现在,我希望您能正确地回答我 - 我不一定希望对这些任务进行重新排序,但我只是想知道为什么会发生排序?我的意思是,人们可以期望在一个线程内以确定的方式完成任务,但是线程的严格排队对我来说似乎有点奇怪。
无论如何,如何在 Python 3 中获得真正的并发性?(据我所知,Jython 和 IronPython 仅支持 2.x)。