CodeNote_1.0.3_使用Exchanger中的exchange进行交换

定义

名字上来说就是交换。Exchanger用于在两个线程之间进行数据交换,线程会阻塞在exchanger上,直到另一个线程也进入了Exchanger中的exchange方法。

代码

package JavaNote_101;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Exchanger;

public class Java_103_Exchanger {
    
    
    public static void main(String[] args) {
    
    
        final Exchanger<List<Integer>> exchanger =new Exchanger<List<Integer>>();
        new Thread(){
    
    
            @Override
            public void run() {
    
    
                List<Integer> l = new ArrayList<Integer>(2);
                l.add(1);
                l.add(2);
                try {
    
    
                    l = exchanger.exchange(l);
                }catch (InterruptedException e){
    
    
                    e.printStackTrace();
                }
                System.out.println("Thread 1"+l);
            }
        }.start();
        new Thread(){
    
    
            @Override
            public void run() {
    
    
                List<Integer> l = new ArrayList<Integer>(2);
                l.add(4);
                l.add(5);
                try {
    
    
                    l = exchanger.exchange(l);
                }catch (InterruptedException e){
    
    
                    e.printStackTrace();
                }
                System.out.println("Thread 2"+l);
            }
        }.start();
    }
}

猜你喜欢

转载自blog.csdn.net/h201601060805/article/details/130754236
今日推荐