suc多线程第9章-juc多线程v1 1.pdfVIP

  • 2
  • 0
  • 约7.11万字
  • 约 36页
  • 2021-04-04 发布于北京
  • 举报
JUC 多线程 (三) 学习目标: 掌握CyclicBarrier同步屏障的使用 掌握CountDownLatch的使用 掌握Semaphore信号量的使用 掌握ConcurrentHashMap同步容器的使用 掌握四种BlockingQueue阻塞队列的使用 掌握线程池的使用,了解内置的四种线程池   11 J.U.C之并发工具类 11.1 CyclicBarrier 11.1.1 CyclicBarrier也叫同步屏障,在JDK1.5 被引入的一个同步辅助类,在API 这么 的: 允许一组线程全部等待彼此达到共同屏障点的同步辅助。 循环阻塞在涉及固定大小的线程方的程序中很有用,这 些线程必须偶尔等待彼此。 屏障被称为循环,因为它可以在等待的线程被 之后重新使用。 CyclicBarrier好比一扇门,默认情况下关闭状态,堵住了线程执行的道路,直到所有线程都就位,门才 打开,让所有线程一起通过。 11.1.2 实现   市昌平区建材城西路金燕龙办公楼一层 电话: 通过上图我们可以看到CyclicBarrier的内部是使用重入锁ReentrantLock和Condition。它有两个构造方 法: CyclicBarrier(int parties) :它将在给定数量的参与者(线程)处于等待状态时启动,但它不会在 启动屏障时执行预定义的操作。parties表示拦截线程的数量。 CyclicBarrier(int parties, Runnable barrierAction) :创建一个新的 CyclicBarrier ,它将在给定数 量的参与者(线程)处于等待状态时启动,并在启动屏障时执行给定的屏障操作,该操作由最后一 个进入屏障的线程执行。 构造方法如下: ublic yclicBarrier nt arties unnable arrierAction { p C (i p , R b )     f ( arties hrow ew llegalArgumentException ); i p 0) t n I (     his arties arties t .p p ;     his ount arties t .c p ;     his arrierCommand arrierAction t .b b ; } ublic yclicBarrier nt arties { p C (i p )     his arties ull ; t (p , n ) }   在CyclicBarrier中最重要的方法莫过于await()方法,每个线程调用await方法告诉CyclicBarrier已经到达 屏障位置,线程被阻塞。源码如下: ublic nt wait ) hrows nterruptedException

文档评论(0)

1亿VIP精品文档

相关文档