0

有沒有人知道一種方法來獲取一個鎖,這樣不僅被調用的函數,而且其他功能都被鎖定。假設我有一堆函數(a(),b(),c()),當我調用函數a()時,我還想函數b()& c()被鎖定。Python:跨功能線程

import threading 
from time import sleep 

def a(): 
    for i in range(5): 
     print(i) 
     sleep(1) 

def b(): 
    for i in range(5): 
     print(i) 
     sleep(1) 

def c(): 
    for i in range(5): 
     print(i) 
     sleep(1) 

thread_a=threading.Thread(target=a) 
thread_a.start() 
thread_b=threading.Thread(target=b) 
thread_b.start() 
thread_c=threading.Thread(target=c) 
thread_c.start() 

我會如何,如果我想上面的代碼給輸出使用鎖:

0 
1 
2 
3 
4 
0 
1 
2 
3 
4 
0 
1 
2 
3 
4 

任何幫助表示讚賞, 格爾茨

回答

0

你必須以這樣或那樣的使用功能之間共享同一Lock實例。

lock = threading.Lock() 

def a(): 
    with lock: 
     for i in range(5): 
      print(i) 
      sleep(1) 

對每個功能都這樣做,它會輸出你想要的。

+0

謝謝Unatiel,這是做的伎倆! –