简答题

解释至少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()方法将一直等待至超时或内部信号状态为真。

答案解析

相似试题
  • 在线程同步中, 为了唤醒另一个等待的线程,使用下列方法()

    单选题查看答案

  • 进程/线程间同步机制四种方式为:()、()、()、()。

    填空题查看答案

  • 在多线程环境中,对于同步方法()

    单选题查看答案

  • 线程同步执行过程中,wait方法与()方法是匹配使用,否则易造成死锁。

    填空题查看答案

  • 如果一个方法声明为同步方法,在有些情况下仍然需要其他线程访问该数据,可在该方法中使当前线程等待调用的方法是()

    单选题查看答案

  • 多个线程操作同一资源的时候需要注意同步,依靠()实现,实现手段是:同步代码块和同步方法,过多的使用,则会出现死锁问题。

    填空题查看答案

  • 线程调用sleep()方法后,该线程将进入以下哪种状态?

    单选题查看答案

  • 线程同步中,对象的锁在()情况下持有线程返回

    单选题查看答案

  • Object类提供的()、()、()3个方法可以控制线程。

    填空题查看答案