그것은 두 사람 사이의 데이터 교환을 달성하는 데 사용됩니다. 모든 사람은 특정 거래를 완료 한 후에는 두 번째 사람이 항상 데이터를 가져 오기 위해 기다립니다. 데이터를 서로 에센스로 교환하십시오
다음과 같이 코드 코드를 복사하십시오.
패키지 com.ljq.test.thread;
java.util.concurrent.exchanger import;
import java.util.concurrent.executorservice;
java.util.concurrent.executors import;
공개 클래스 exchangrtest {
public static void main (String [] args) {{
ExecutorService Service = Executor.NewCachedThreadPool ();
최종 거래소 교환 = 새로운 exchange ();
service.execute (new Runnable () {)
public void run () {
노력하다 {
문자열 data1 = "Zhang San";
System.out.println ( "스레드" + 스레드.
Thread.sleep ((long) (math.random ()*10000);
문자열 data2 = (문자열) exchanger.exchange (data1);
System.out.println ( "스레드" + 스레드.
} catch (예외 e) {{
}
}
});
service.execute (new Runnable () {)
public void run () {
노력하다 {
문자열 data1 = "li si";
System.out.println ( "스레드" + 스레드.
Thread.sleep ((long) (math.random ()*10000);
문자열 data2 = (문자열) exchanger.exchange (data1);
System.out.println ( "스레드" + 스레드.
} catch (예외 e) {{
}
}
});
}
}
후면 결과 :
다음과 같이 코드 코드를 복사하십시오.
스레드 풀 스레드 -1이 스레드 풀에서 'Zhang San'을 대체하고 있습니다.
스레드 풀 -1- 스레드 -2의 데이터는 'Zhang San'으로 대체됩니다.