做采集的网站有流量吗,公司网站建设电话,白城北京网站建设,石家庄网站建设费用Exchanger可以在两个线程之间交换数据#xff0c;只能是2个线程#xff0c;他不支持更多的线程之间互换数据。 当线程A调用Exchange对象的exchange()方法后#xff0c;他会陷入阻塞状态#xff0c;直到线程B也调用了exchange()方法#xff0c;然后以线程安全的方式交换数据…Exchanger可以在两个线程之间交换数据只能是2个线程他不支持更多的线程之间互换数据。 当线程A调用Exchange对象的exchange()方法后他会陷入阻塞状态直到线程B也调用了exchange()方法然后以线程安全的方式交换数据之后线程A和B继续运行。 1 package cn.sp.test4;2 3 import java.util.ArrayList;4 import java.util.List;5 import java.util.concurrent.Exchanger;6 7 /**8 * Created by 2YSP on 2017/9/1.9 * 两个线程之间交换数据
10 */
11 public class ExchangerTest {
12
13
14 public static void main(String[] args) {
15 final ExchangerListInteger exchanger new Exchanger();
16
17 new Thread(() - {
18 ListInteger l new ArrayListInteger(2);
19 l.add(1);
20 l.add(2);
21 try {
22 l exchanger.exchange(l);
23 } catch (InterruptedException e) {
24 e.printStackTrace();
25 }
26 System.out.println(thread1: l);
27 }).start();
28
29 new Thread(() - {
30 ListInteger l new ArrayListInteger(2);
31 l.add(3);
32 l.add(4);
33 try {
34 l exchanger.exchange(l);
35 } catch (InterruptedException e) {
36 e.printStackTrace();
37 }
38 System.out.println(thread2: l);
39 }).start();
40
41 }
42 } 执行结果 可以看到线程1和2已经交换了数据。转载于:https://www.cnblogs.com/2YSP/p/7483584.html