美文网首页
JUC-工具类

JUC-工具类

作者: ythmilk | 来源:发表于2021-02-16 21:22 被阅读0次

Semaphore

信号量或者说叫管理器,它其实不是对资源加锁,而是控制最多N个线程可以同时访问资源。类似停车场,如果停满了,只能等待。

CountDownLatch

完成线程的协作,等所有线程执行完之后再执行
用join可以实现同样的功能,但是join在线程池的情况下不能使用

latch.countDown();计数器减一
latch.await();等待所有线程结束后继续往下执行

CyclicBarrier

循环栅栏,也是线程协作。等线程数满足计数器时,才开始执行,比如等待人齐了开始干活。
cb.await(); // 当个数不足时,等待

也可以在所有任务开始之前进行某些任务,所有线程的await()之后先执行下面线程方法。

CyclicBarrier cb = new CyclicBarrier(2, new Runnable() {
            @Override
            public void run() {
                System.out.println("哈哈");
            }
        }) ;

相关文章

  • JUC-工具类

    Semaphore 信号量或者说叫管理器,它其实不是对资源加锁,而是控制最多N个线程可以同时访问资源。类似停车场,...

  • JUC-工具类:2. CyclicBarrier

    功能概述 构造一个 可重复使用的 ,带计数器(计数递减)的 Barrier 每当一个线程进入Barrier(调用a...

  • JUC-工具类:3. Semaphore

    限流型,控制并发线程数 功能概述 内置 一个许可证池,其中存放 数量有限、可循环使用的许可证 线程可申请许可证,如...

  • JUC-工具类:1. CountDownLatch

    功能概述 构造一个Latch(锁),指定需要执行多少次countDown()方法后,latch才打开。1.1 构...

  • JUC-工具类:4. Exchanger

    功能概述 一对线程都准备好数据后,交换数据。 方法介绍 构造方法无参。凑齐了两个线程才可以进行交换。即t1对t2,...

  • JUC-(6)并发工具(下)

    Exchanger(交换机) 交换机(Exchanger)主要用于线程之间数据交换的工具,它提供一个同步点,在这个...

  • JUC-(5)并发工具(上)

    在java.util.concurrent中给我们提供了很多的并发工具,通过这些并发工具我们能很简单的实现许多强大...

  • SocketIO的使用

    SocketIO的工具类 RunSubject工具类 SubjectRun工具类 ObserverRun工具类 R...

  • 工具类

    系统工具类 snackbar工具类 xml解析工具类

  • Javascript通用工具类

    Json工具类,处理所有Json相关的通用方法。 数字计算工具类 颜色工具类 日期工具类 字符串工具类

网友评论

      本文标题:JUC-工具类

      本文链接:https://www.haomeiwen.com/subject/kkbmxltx.html