最近一直在看<Think In Java>里关于并发部分的章节,读到第二十一章有一个有趣的比喻:必须先挖房子的地基,但是接下来可以并行的铺设钢结构和构建水泥部件,而这两项任务必须在混凝土浇筑之前完成.管道必须在水泥板浇注之前到位,而水泥板必须在开始构筑房屋骨架之前到位. 在这些任务中,某些可以并行执行,但是某些步骤需要所有的任务都结束之后才能开动,这是线程之间协作的必要性. 在此之前,我们学习过使用notify().notifyAll()和wait()来控制线程间的协作,让我们先来回顾一下.n…
Today we will look into Java BlockingQueue. java.util.concurrent.BlockingQueue is a java Queue that support operations that wait for the queue to become non-empty when retrieving and removing an element, and wait for space to become available in the…
Integer.parseInt()和Integer.valueOf()都是用来将String转换为Int的,但是为什么Java会提供两个这样的方法呢,他们如果是同样的操作,岂不是多此一举? 我们来深挖的Java源代码一探究竟. 的Integer.parseInt()返回一个原子类型INT.Integer.valueOf(),返回的是封装的整数对象. 我们来看一下Integer.parseInt()的源码实现: public static int parseInt(String s) throw…