2012-07-12 21 views
6

Event ve Lock aynı şeyleri bu sahnelerde yapıyor mu?Python iş parçacığı modülünde Olay ve Kilit farkı nedir?

class MyThread1(threading.Thread): 
    def __init__(event): 
     self.event = event 

    def run(self): 
     self.event.wait() 
     # do something 
     self.event.clear() 

başka:

Eğer bir etkinlik üzerinde beklerseniz
class MyThread2(threading.Thread): 
    def __init__(lock): 
     self.lock = lock 

    def run(self): 
     self.lock.acquire() 
     # do something 
     self.lock.release() 

cevap

6

, bir event.set() kadar yürütme tezgahları kilidinin zaten edinilmiş ise bir kilit yalnızca tezgahları Kazanılması

event.wait() # waits for event.set() 

olur

lock.acquire() # first time: returns true 
lock.acquire() # second time: stalls until lock.release() 

Her iki sınıfın da farklı kullanım durumları vardır. This article, farklılıkları anlamanıza yardımcı olacaktır.

İlgili konular