记一个有意思的面试题 → 线程交替输出问题 (2)

记一个有意思的面试题 → 线程交替输出问题

  如果不了解 TransferQueue ,那这种方式就想不到;同样留一个问题(面试点)

  1、上面的代码能否保证一定先输出数字,为什么

  BlockingQueue

  一般也比较难想到这种方式,有所了解就好

记一个有意思的面试题 → 线程交替输出问题

  PipedStream

  效率很低,知道有这么回事就好

记一个有意思的面试题 → 线程交替输出问题

总结

  1、示例代码地址:juc-demo

  2、需要掌握的实现方式

    synchronized、ReentrantLock、LockSupport、CAS、TransferQueue 这几种实现方式必须掌握

    其他的了解就好

  3、如何保证一定先输出数字

    上面介绍的那些方式中,有些是不能保证一定先输出数字的,而有些是能保证一定先输出数字的

    不能保证先输出数字的,可以用 CountDownLatch 来控制,是一种比较理想的做法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjxpf.html