2012-07-12 52 views
6

EventLock在这些场景中做同样的事情吗?python线程模块中的事件和锁定有什么区别?

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

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

另:

class MyThread2(threading.Thread): 
    def __init__(lock): 
     self.lock = lock 

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

回答

6

如果等待一个事件,执行摊位,直到event.set()发生

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

获取如果锁已获得锁只摊位

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

这两个类都有不同的用例。 This article将帮助您了解差异。

相关问题