Se utiliza para lograr el intercambio de datos entre dos personas. Intercambiar los datos entre sí esencia
Copiar código del código de la siguiente manera:
paquete com.ljq.test.thread;
Import java.util.concurrent.exchanger;
Import java.util.concurrent.executorservice;
Import java.util.concurrent.executors;
intercambio de clases públicas {
Public static void main (string [] args) {{
EjecutorService Service = Ejecutors.NewCachedThreadPool ();
Final Exchange Exchange = new Exchange ();
Service.Execute (new Runnable () {)
public void run () {
intentar {
String data1 = "zhang san";
System.out.println ("Thread" + Thread.CurrentThread (). GetName () + "ahora está activando los datos" + data1 + "'out");
Thread.sleep ((long) (math.random ()*10000));
String data2 = (String) intercambiador.exchange (data1);
System.out.println ("Thread" + Thread.CurrentThread (). GetName () + "Los datos reemplazados son '" + data2 + "'");
} Capt (excepción e) {{
}
}
});
Service.Execute (new Runnable () {)
public void run () {
intentar {
String data1 = "li si";
System.out.println ("Thread" + Thread.CurrentThread (). GetName () + "ahora está activando los datos" + data1 + "'out");
Thread.sleep ((long) (math.random ()*10000));
String data2 = (String) intercambiador.exchange (data1);
System.out.println ("Thread" + Thread.CurrentThread (). GetName () + "Los datos reemplazados son '" + data2 + "'");
} Capt (excepción e) {{
}
}
});
}
}
Resultados de retroceso:
Copiar código del código de la siguiente manera:
El Pool-Pogrin-1 de Thread está reemplazando los datos 'Zhang San' de los datos fuera del subproy de subprocesos-2 está cambiando los datos a la piscina de subproceso-hilo-1 ''
Los datos del subproy de subproceso-1-hilo-2 son reemplazados por 'Zhang San'