Он используется для достижения обмена данными между двумя людьми. обмениваться данными друг с другом сущностью
Код кода копирования следующим образом:
пакет com.ljq.test.thread;
Импортировать java.util.concurrent.exchanger;
Импортировать java.util.concurrent.executorservice;
Импортировать java.util.concurrent.executors;
Обмен на открытый класс {
Public static void main (string [] args) {{
Executorservice service = executors.newcachedthreadpool ();
Final Exchange = New Exchange ();
Service.execute (new Runnable () {)
public void run () {
пытаться {
String Data1 = "Zhang San";
System.out.println ("Thread" + Thread.currentThread (). GetName () + "теперь поворачивает данные" + data1 + "'out");
Thread.sleep ((Long) (Math.Random ()*10000));
String Data2 = (String) Exchanger.Exchange (data1);
System.out.println ("Thread" + Thread.currentThread (). GetName () + "Замена данных" + data2 + "'" ");
} Catch (Exception e) {{
}
}
});
Service.execute (new Runnable () {)
public void run () {
пытаться {
String Data1 = "li Si";
System.out.println ("Thread" + Thread.currentThread (). GetName () + "теперь поворачивает данные" + data1 + "'out");
Thread.sleep ((Long) (Math.Random ()*10000));
String Data2 = (String) Exchanger.Exchange (data1);
System.out.println ("Thread" + Thread.currentThread (). GetName () + "Замена данных" + data2 + "'" ");
} Catch (Exception e) {{
}
}
});
}
}
Результаты назад:
Код кода копирования следующим образом:
Пул потоков-thread-1 заменяет данные «Zhang San» из пула Thread-1-Thread-2 изменяет данные на пул потоков-thread-1 '
Данные потоков Pool-1-Thread-2 заменяются «Zhang San»