美文网首页
Exchanger的使用

Exchanger的使用

作者: 永远的太阳0123 | 来源:发表于2019-01-13 21:58 被阅读0次

    1 Exchanger使用案例

    public class ExchangerDemo {
    
        public static void main(String[] args) {
            Exchanger<Object> exchanger = new Exchanger<>();
    
            new Thread(() -> {
                Object object = new Object();
                System.out.println(Thread.currentThread().getName() + "创建的对象是" + object);
                try {
                    object = exchanger.exchange(object);
                    System.out.println(Thread.currentThread().getName() + "交换后得到的对象是" + object);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }, "线程1").start();
    
            new Thread(() -> {
                Object object = new Object();
                System.out.println(Thread.currentThread().getName() + "创建的对象是" + object);
                try {
                    TimeUnit.SECONDS.sleep(2);
                    object = exchanger.exchange(object);
                    System.out.println(Thread.currentThread().getName() + "交换后得到的对象是" + object);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }, "线程2").start();
        }
    
    }
    

    结果

    线程1创建的对象是java.lang.Object@2f992f4f
    线程2创建的对象是java.lang.Object@42c40a13
    线程2交换后得到的对象是java.lang.Object@2f992f4f
    线程1交换后得到的对象是java.lang.Object@42c40a13
    

    相关文章

      网友评论

          本文标题:Exchanger的使用

          本文链接:https://www.haomeiwen.com/subject/waxrdqtx.html