java并发编程_线程池的使用方法(详解)
Executor可以将任务的提交和任务的执行策略解耦只有任务是同类型的且执行时间差别不大,才能发挥最大性能,否则,如将一些耗时长的任务和耗时短的任务放在一个线程池,除非线程池很大,否则会造成死锁等问题类似于:将两个任务提交给一个单线程池,且两个任务之间相互依赖,一个任务等待另一个任务,则会发生死锁;表现为池不够定义:某个任务必须等待池中其他任务的运行结果,有可能发生饥饿死锁注意:线程池的大小还受其他的限制,如其他资源池:数据库连接池如果每个任务都是一个连接,那么线程池的大小就受制于数据库连接池的大小1.通过Executors的工厂方法返回默认的一些实现2.通过实例化ThreadPoolExec
用户评论