import java.util.concurrent.Exchanger; public class ExchangerDemo { public static void main(String[] args) { Exchanger exchanger = new Exchanger(); ExchangerRunnable runnable1 = new ExchangerRunnable(exchanger, "runnable1"); ExchangerRunnable runnable2 = new ExchangerRunnable(exchanger, "runnable2"); new Thread(runnable1).start(); new Thread(runnable2).start(); System.out.println("Main out."); } static class ExchangerRunnable implements Runnable { private Exchanger<String> exchanger; private String msg; public ExchangerRunnable(Exchanger<String> exchanger, String msg) { this.exchanger = exchanger; this.msg = msg; } @Override public void run() { try { System.out.println("exchanger in."); Thread.sleep(5000); String read = exchanger.exchange(msg); System.out.println("exchanger send:" + msg + ", read:" + read); } catch (InterruptedException e) { e.printStackTrace(); } } } }
JUC多线程并发控制类--Exchanger
最新推荐文章于 2024-10-09 23:44:37 发布