Pit*_*ger 8 java multithreading java.util.concurrent threadpoolexecutor
我在我写的许多应用程序中使用过多线程.在阅读更多内容时,我遇到了ThreadPoolExecutors.我无法区分这两种情况.
我仍然理解的是,当我有一项任务时,我应该使用多线程我想将任务分成多个小任务来利用CPU并更快地完成工作.而且使用ThreadPoolExecutor的时候我有一组任务和每个任务可以运行相互独立的.
如果我错了,请纠正我.谢谢
ass*_*ias 18
A ThreadPoolExecutor只是一个高级API,使您可以在多个线程中运行任务,而无需处理低级Thread API.因此,区分多线程和ThreadPoolExecutor并没有多大意义.
有很多种ThreadPoolExecutors,但大多数都允许多个线程并行运行.通常,您将使用Executor服务并使用Executors工厂.
例如,a ExecutorService executor = Executors.newFixedThreadPool(10);将运行您在10个线程中提交的任务.
ThreadPoolExecutor是多线程的一种方式.它通常在您使用时使用
Java 7有另一个内置的类叫做a ForkJoinPool,它通常用于Map-Reduce类型的操作.例如,可以想象使用ForkJoinPool实现合并排序,方法是在每个叉点处将数组拆分为1/2,等待结果,并将结果合并在一起.
线程池(执行器)是多线程的一种形式,特别是单个生产者的实现 - 多个消费者模式,其中线程重复将工作放入队列中以供工作线程团队执行.它使用常规线程实现,并带来以下好处:
鉴于上述情况,池确实适用于通常彼此独立且通常短暂的任务(长I/O操作只会占用池中不能执行其他任务的线程) ).
| 归档时间: |
|
| 查看次数: |
10733 次 |
| 最近记录: |