从这一节开始正式进入线程池的部分。其实整个体系已经拖了很长的时间,因此后面的章节会加快速度,甚至只是一个半成品或者简单化,以后有时间的慢慢补充、完善。其实线程池是并发包里面很重要的一部分,在实际情况中也是使用很多的一个重要组件。下图描述的是线程池API的一部分。广义上的完整线程池可能还包括Threa...
分类:
编程语言 时间:
2014-12-03 00:16:52
阅读次数:
194
并发包引入的工具类很多方法都会抛出一定的异常,这些异常描述了任务在线程池中执行时发生的例外情况,而通常这些例外需要应用程序进行捕捉和处理。例如在Future接口中有如下一个API:java.util.concurrent.Future.get(long,TimeUnit)throwsInterrup...
分类:
编程语言 时间:
2014-12-02 23:50:26
阅读次数:
227
从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件:简单,意味着程序员尽可能少的操作底层或者实现...
分类:
编程语言 时间:
2014-12-02 22:24:54
阅读次数:
197
我们一直在说并发编程,我们只知道JDK5有个并发编程包帮我们封装好了多线程下的复杂处理机制,这篇文章的重点不是说它的底层实现原理,只想说下并发包的编程模式思想,我以前一直在想这种思想来源于哪里,面向对象编程的好处应该就是能总结一种模式,只有定义了模式理解了模式..
分类:
编程语言 时间:
2014-11-30 00:53:20
阅读次数:
155
JAVA并发包中有三个类用于同步一批线程的行为,分别是CountDownLatch、Semaphore和CyclicBarrier。 CountDownLatchCountDownLatch是一个计数器闭锁,主要的功能就是通过await()方法来阻塞住当前线程,然后等待计数器减少到0了,再唤起这些线...
分类:
编程语言 时间:
2014-11-05 16:49:19
阅读次数:
276
这篇看一下时限队列锁的一种实现方式。 java并发包中的Lock定义包含了时限锁的接口:
public interface Lock {
void lock();
void lockInterruptibly() throws InterruptedException;
boolean tryLock();
boolean tryLock(long t...
分类:
其他好文 时间:
2014-10-27 14:27:59
阅读次数:
169
转:http://www.blogjava.net/xylz/archive/2010/07/01/324988.html从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。很多情况下...
分类:
编程语言 时间:
2014-10-17 18:18:38
阅读次数:
223
接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上....
分类:
编程语言 时间:
2014-09-18 18:26:44
阅读次数:
229
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后...
分类:
编程语言 时间:
2014-09-12 13:16:43
阅读次数:
183
jdk并发包ReentrantLock 源码导读及使用实例...
分类:
其他好文 时间:
2014-09-10 23:56:41
阅读次数:
565