python多进程打印字符,加锁(Lock加锁)
?
先看不加鎖的:
#coding=utf-8
from multiprocessing import Process,Lock
import time
def l(num):
??? #lock.acquire()???
??? #stime.sleep(2)
??? print "Hello num:%s" %num
??? #lock.release()
if __name__=='__main__':
??? lock=Lock()
??? for num in range(10):
??????? Process(target=l,args=(num,)).start()
?結果:可以看到,啟動10個進程,異步執行打印函數,打印的很亂
c:\Python27\Scripts>python task_test.py
HHello num:0Hello num:1
ello num:2
Hello num:3
HHello num:4ello num:5
Hello num:6
Hello num:7
Hello num:8
Hello num:9
?
?
?
?
?
加鎖:
#coding=utf-8
from multiprocessing import Process,Lock
import time
def l(num,lock):
??? lock.acquire()???
??? #stime.sleep(2)
??? print "Hello num:%s" %num
??? lock.release()
if __name__=='__main__':
??? lock=Lock()
??? for num in range(10):
??????? Process(target=l,args=(num,lock)).start()
結果:執行打印的進程獲得鎖,打印后釋放鎖,之后下一個進程獲得鎖,所以每次打印都只有一個進程在操作
?c:\Python27\Scripts>python task_test.py
Hello num:0
Hello num:1
Hello num:3
Hello num:2
Hello num:6
Hello num:5
Hello num:4
Hello num:7
Hello num:8
Hello num:9
?
轉載于:https://www.cnblogs.com/xiaxiaoxu/p/8757723.html
總結
以上是生活随笔為你收集整理的python多进程打印字符,加锁(Lock加锁)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVa 10603 Fill (BFS+
- 下一篇: 1.Easy Touch 3.1