闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态;闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当到达结束状态时,这扇门会打开并允许所有线程通过;当闭锁到达结束状态后,将不会再改变状态,因此这扇门将永远保持打开状态; 闭锁是一次性对象,一旦进入终止状态就不能被重置; 闭锁可以用来确保某些活动直到其它活动都完成后才继续执行;适用场景:

  • 应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行;
  • 多玩家游戏中当所有玩家都就绪后才执行某项活动;
  • 设想有这样一个功能需要Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给主线程去做汇总,利用闭锁来完成就非常轻松; 闭锁状态包括一个计数器,该计数器被初始化为一个整数,表示需要等待的事件数量;

results matching ""

    No results matching ""