次のコードは非常に単純で、テストのみを目的としていますが、必要な出力が得られません。
from multiprocessing import Process,Lock
def printing(l,i):
l.acquire()
print i
l.release()
if __name__ == '__main__':
lock = Lock()
for i in range(10):
Process(target=printing,args=(lock,i)).start()
出力は次のとおりです。
0
1
2
3
5
6
4
7
8
9
ロックは、他のプロセスの実行を中断することになっています。なぜここで起こっていないのですか?