Java多线程
guozebo
这个作者很懒,什么都没留下…
展开
-
线程的中断与InterruptedException
一直不明白为什么Thread.sleep(long millis)方法为啥会抛出checked异常InterruptedException原创 2015-05-08 16:37:16 · 568 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor简介(二)
由于ThreadPoolExecutor实在太常用了,以致于我不得不将一些常用的例子与心得记下来。在上一篇《Java线程池ThreadPoolExecutor简介》中没讲完,这篇继续。原创 2016-04-24 22:35:43 · 714 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor简介(一)
在多任务并发的应用场景,线程池ThreadPoolExecutor是必不可少的。使用线程池最主要的好处就是能够限制系统最大线程并发数、空余线程复用、线程统一管理、维护一些统计数据如活跃线程数等等。但我感触最深的是它特别适用于生产者_消费者场景,感觉就是为这种模式而设计的工具。原创 2016-04-07 23:27:57 · 1732 阅读 · 0 评论 -
Java中定时任务的实现:Timer与ScheduledExecutorService的不同
在做后台任务的时候经常需要实现各种各种的定时任务,本文介绍了Timer和ScheduledThreadPoolExecutor的使用。原创 2016-04-10 22:48:35 · 10170 阅读 · 3 评论 -
java并发库中的LockSupport介绍及使用
在没有接触到LockSupport类之前,我一直很疑惑jdk并发库中的很多工具类到底是怎么实现让线程阻塞的呢?最典型的就是futureTask,主线程调用get()方法会一直阻塞直到结果返回。据我所知,能让线程阻塞(注意不是休眠)的实现方式是在同步块中调用锁对象的wait()方法,如下所示: synchronized (object) { try { //进入阻塞状态,原创 2016-01-10 14:09:26 · 992 阅读 · 0 评论 -
多任务并发之生产者消费者模式应用
生产者-消费者模式大家都很熟悉,生产者负责生产数据,并存放到队列中,消费者负责从队列中取出数据来消费。可以看出生产者和消费者之间不直接通讯,是通过队列来通讯的。生产者和消费者是抽象的概念,可以是线程、进程、系统模块,而队列也可以是JVM中的Queue、Redis中的List、甚至是数据库表,这要求我们在不同的使用场景需要选择相应的实现。比如在线程池ThreadPoolExecutor的使用场景中,生产者就是提交任务的线程,消费者就是消费任务的线程,当然还有一个存放任务的阻塞队列。原创 2016-05-28 22:58:41 · 6805 阅读 · 0 评论