如果不了解 TransferQueue ,那这种方式就想不到;同样留一个问题(面试点)
1、上面的代码能否保证一定先输出数字,为什么
BlockingQueue一般也比较难想到这种方式,有所了解就好
PipedStream效率很低,知道有这么回事就好
总结1、示例代码地址:juc-demo
2、需要掌握的实现方式
synchronized、ReentrantLock、LockSupport、CAS、TransferQueue 这几种实现方式必须掌握
其他的了解就好
3、如何保证一定先输出数字
上面介绍的那些方式中,有些是不能保证一定先输出数字的,而有些是能保证一定先输出数字的
不能保证先输出数字的,可以用 CountDownLatch 来控制,是一种比较理想的做法