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
いつも同じ。
今、私はあなたに私を正しく理解してもらいたいです-私は必ずしもそれらのタスクが並べ替えられることを望んでいませんが、なぜ並べ替えが起こるのか疑問に思っています. つまり、1 つのスレッド内で決定論的な方法で処理を行うことが期待できますが、スレッドの厳密なキューイングは少し奇妙に思えます。
とにかく、Python 3 で本当の同時実行性を得るにはどうすればよいですか? (私の知る限り、Jython と IronPython は 2.x のみをサポートしています)。