高併發裡的Exchanger交換機測試
阿新 • • 發佈:2018-12-05
@Test
public void test04(){
Exchanger<String> exchanger = new Exchanger<>(); //new出交換機
new Thread(new Spy01(exchanger)).start(); //從構造方法傳入物件中
new Thread(new Spy02(exchanger)).start();
}
class Spy01 implements Runnable{ Exchanger<String> exchanger; public Spy01(Exchanger<String> exchanger) { this.exchanger = exchanger; //從構造方法傳入交換機 } @Override public void run() { String str01 = "天蒼蒼"; //暗號,也就是要傳給另一方的資料 try { String spy02 = exchanger.exchange(str01); //該方法將自己的資料傳給對方,同時接收的是對方傳來的資料 System.out.println("spy02說:"+spy02); } catch (InterruptedException e) { e.printStackTrace(); } } } class Spy02 implements Runnable{ Exchanger<String> exchanger; public Spy02(Exchanger<String> exchanger) { this.exchanger = exchanger; } @Override public void run() { String str02 = "野茫茫"; try { String spy01 = exchanger.exchange(str02); System.out.println("spy01說:" + spy01); } catch (InterruptedException e) { e.printStackTrace(); } } }
spy02說:野茫茫
spy01說:天蒼蒼