Java多線程之Exchanger基礎篇

一、Exchanger應用場景

  • 實現兩個線程之間的值交換

二、一個Demo學明白Exchanger

public class MyExchanger {
    public static void main(String[] args) {
        Exchanger<String> exchanger = new Exchanger<>();

        /*下面兩個線程將自己的字符變量s進行了交換*/
        new Thread(()->{
            String s = "Thread-1";
            try {
                s = exchanger.exchange(s);
                Thread.sleep(1000);
                System.out.println(Thread.currentThread().getName()+":"+s);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },"Thread-1").start();
        new Thread(()->{
            String s = "Thread-2";
            try {
                s = exchanger.exchange(s);
                Thread.sleep(1000);
                System.out.println(Thread.currentThread().getName()+":"+s);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },"Thread-2").start();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章