java里有一种特殊的线程叫做守护线程(Daemon)线程。这种线程的优先级很低,通常来说,当同一个应用程序里没有其他的线程运行的时候,守护线程才运行。当程序中唯一运行的的线程是守护线程时,并且守护线程执行结束后 ,JVM也就结束了这个程序。 因为这种特性,守护线程通常被用来作为同一程序中普通线程....
分类:
编程语言 时间:
2014-12-06 22:44:52
阅读次数:
215
阻塞队列提供了可阻塞的 put 和 take 方法,以及支持定时的 offer 和 poll 方法。如果队列已经满了,那么put方法将阻塞直到有空间可以用;如果队列为空,那么take方法将一直阻塞直到有元素可用。队列可以使有界的,也可以是无界的,无界队列永远都不会充满,因此无界队列上的put方法永远不会阻塞。一种常见的阻塞生产者-消费者模式就是线程池与工作队列的组合,在 Executor 任务执行框架中就体现了这种模式。
意义:该模式能简化开发过程,因为他消除了生产者和消费者类之间的代码依赖性,此外,该模式...
分类:
编程语言 时间:
2014-12-06 21:37:31
阅读次数:
341
今天,拿一个简单例子来说明线程中断的控制。场景:在特定的目录,寻找特定的文件,如果找到,则10秒线程中断。如果没找到,直接抛出InterruptedException异常,并在run()方法捕获处理这个异常。 1.创建一个类名为FileSearch类,并且实现Runnable接口。 public ....
分类:
编程语言 时间:
2014-12-04 23:00:40
阅读次数:
394
一、中断模型:http://ifeve.com/java-interrupt-mechanism/1. 协作制度, 你要我中断,只是给我一个信号,我啥时候中断,是我的事情。 比如 T1调用T2.interrupt(), T2 如果没有写 if (Thread.intterrupted()) { r....
分类:
编程语言 时间:
2014-12-04 06:14:41
阅读次数:
212
今天,我们注重分析下Thread类。这个类有一些信息的属性。这些属性可以用来标识线程,显示线程的状态或者控制线程的优先级。 ID:保存了线程的唯一标识。 Name:保存了线程的名称 Priority:保存了线程的优先级。 Status:保存了线程的状态。java中线程的状态有:new,runnabl...
分类:
编程语言 时间:
2014-11-30 23:10:45
阅读次数:
326
提到java原子类,不得不说下关键字volatile和内存可见性。内存可见性问题,可以看下《java并发编程实践》讲的很详细。下面的示例代码是错误的,因为没有使用volatile来保证内存的可见性,所以如果1个线程修改了共享变量,那么另外一个线程可能永远也看不到修改后的值。如果将stop修改成volatile类型的,就可以保证一个线程对volatile变量的修改,对另一个线程是可见的。
publ...
分类:
其他好文 时间:
2014-11-30 18:48:15
阅读次数:
285
根据《Java并发编程实践》一书整理的思维导图。希望能够有所帮助。
第一部分:
第二部分:
第三部分:...
分类:
编程语言 时间:
2014-11-28 10:11:05
阅读次数:
149
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
编程语言 时间:
2014-11-26 16:10:05
阅读次数:
278
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
编程语言 时间:
2014-11-26 16:06:23
阅读次数:
308
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
编程语言 时间:
2014-11-25 18:14:38
阅读次数:
305