JUC-工具类:4. Exchanger

2021-06-16  本文已影响0人  rock_fish

功能概述

一对线程都准备好数据后,交换数据。

方法介绍

  1. 构造方法无参。凑齐了两个线程才可以进行交换。即t1对t2,t3对t4,t4对t5,t1对t3...
  2. exchange:
    2.1 若第一个线程调用exchange,提供了自己的数据后,阻塞等待第二个线程到来
    2.2 第二个线程调用exchange,唤醒第一个线程,双方交换数据后,各自忙各自的去。
  3. 若交换的是引用对象,那么两个线程都拿到了对象的引用。涉及到共享资源的线程安全问题,需要留意。

场景案例

对于生产者消费者模式 可用于 1生 :1消 或者 1生:多消(抢夺式消费,生产一个抢走一个)

上一篇下一篇

猜你喜欢

热点阅读