试题详情
简答题解释至少3种线程同步方法。
  • (1)使用Condition对象可以在某些事件触发后才处理数据,可以用于不同线程之间的通信或通知,以实现更高级别的同步。Condition对象除了具有acquire()和release()方法之外,还有wait()、notify()、notify_all()等方法。下面通过经典生产者/消费者问题来演示Condition对象的用法。
    (2)Queue模块(在Python3中为queue模块)实现了多生产者/多消费者队列,尤其适合需要在多个线程之间进行信息交换的场合,该模块的Queue对象实现了多线程编程所需要的所有锁语义。
    (3)Event对象是一种简单的线程通信技术,一个线程设置Event对象,另一个线程等待Event对象。Event对象的set()方法可以设置Event对象内部的信号标志为真;clear()方法可以清除Event对象内部的信号标志,将其设置为假;isSet()方法用来判断其内部信号标志的状态;wait()方法只有在其内部信号状态为真时将很快地执行并返回,若Event对象的内部信号标志为假,wait()方法将一直等待至超时或内部信号状态为真。
  • 关注下方微信公众号,在线模考后查看

热门试题