美文网首页
Exchanger应用

Exchanger应用

作者: sunpy | 来源:发表于2019-02-28 13:21 被阅读1次

    场景

    两支球队,相互交易球员,一个交易出勒布朗詹姆斯,一个交易出斯蒂芬库里。

    实现

    public class ExchangerTest {
    
        private static final Exchanger<String> exchanger = new Exchanger<String>();
        
        public static void main(String[] args) {
            ThreadPoolExecutor tpe = new ThreadPoolExecutor(2, 
                    2, 
                    15, 
                    TimeUnit.SECONDS, 
                    new ArrayBlockingQueue<Runnable>(10));
            tpe.allowCoreThreadTimeOut(true);
            
            tpe.execute(new Runnable() {
    
                @Override
                public void run() {
                    try {
                        String outputStr = " 勒布朗詹姆斯";
                        String inputStr = exchanger.exchange(outputStr);
                        System.out.println(Thread.currentThread().getName() + " 交易进来" + inputStr);
                        System.out.println(Thread.currentThread().getName() + " 交易出去" + outputStr);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
            
            tpe.execute(new Runnable() {
    
                @Override
                public void run() {
                    try {
                        String outputStr = " 斯蒂芬库里";
                        String inputStr = exchanger.exchange(outputStr);
                        System.out.println(Thread.currentThread().getName() + " 交易进来" + inputStr);
                        System.out.println(Thread.currentThread().getName() + " 交易出去" + outputStr);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    }
    

    结果:

    pool-1-thread-1 交易进来 斯蒂芬库里
    pool-1-thread-2 交易进来 勒布朗詹姆斯
    pool-1-thread-1 交易出去 勒布朗詹姆斯
    pool-1-thread-2 交易出去 斯蒂芬库里
    

    相关文章

      网友评论

          本文标题:Exchanger应用

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