
Concurrent
水桶妖
这个作者很懒,什么都没留下…
展开
-
Executor框架(线程池)
Executor基于生产者-消费者模式,提交任务(Runnable)的操作相当于生产者(生成待完成的工作单元),执行任务的线程相当于消费者(执行完这些工作单元)。每当看到下面这种形式的代码时:new Thread(runnable).start()并且你希望获得一种更灵活的执行策略,请考虑使用Executor来替代Thread。 1. 线程池在线程池中执行任务比为每个...原创 2013-04-12 15:10:14 · 109 阅读 · 0 评论 -
任务取消与关闭(interrupt)
虽然Thread.stop和suspend等方法提供了线程终止的机制,但由于存在一些严重的缺陷,因此应该避免使用。可以说Java并没有提供任何机制来安全地终止线程。但它提供了中断(Interrupt),这时一种协作机制,能够使一个线程终止另一个线程的当前工作。提到中断,我们就不得不说明一下Thead.interrupt方法:调用interrupt并不意味着立即停止目标线程正在进行的工作,而只是...原创 2013-04-12 16:15:56 · 374 阅读 · 0 评论 -
yield() join() sleep() wait() 区别
除了yield,其他方法都有阻塞效果,所以必须处理InterruptedException,因此在多线程任务中最好实现中断策略。1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常 比如有两个线程同时执行(没有S...原创 2014-05-15 11:30:40 · 222 阅读 · 0 评论