0
点赞
收藏
分享

微信扫一扫

TransferQueue 实现交替输出

外贸达人小峻先森 2022-02-16 阅读 79
java

 接着 java线程交替执行的实现_北尘-CSDN博客_java线程交替运行 ,再补一种写法;

@Slf4j
public class AlternateExecute {
    public static void main(String[] args) {
        TransferQueue transferQueue = new LinkedTransferQueue();
        char[] charsA = {'A','B','C'};
        char[] charsB = {'1','2','3'};

        Thread threadA = new Thread(() -> {

            for (int i = 0; i < charsA.length; i++) {
                try {
                    log.info("{}" ,transferQueue.take());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                try {
                    transferQueue.transfer(charsA[i]);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        Thread threadB = new Thread(() -> {
            for (int i = 0; i < charsB.length; i++) {

                try {
                    transferQueue.transfer(charsB[i]);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                try {
                    log.info("{}" ,transferQueue.take());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        threadA.start();
        threadB.start();

    }
}

 

举报

相关推荐

0 条评论