2 sinat 33314857 sinat_33314857 于 2016.09.08 11:18 提问

线程池适用条件,任务时间

从网上看到很多网友说线程池特别适合任务时间短,重复任务量多的反复调用情况,我也一直在测试线程池的并行处理,但是总达不到更优的加速。对于任务时间短这个特点我有疑问,怎么来标定这个任务有多短才适合用线程池呢?我的单次运行时间是0.006s左右,一个循环里有16次,整个循环过程需要重复运行120多次,用线程池合适吗?

1个回答

u012569996
u012569996   2016.09.08 18:08
已采纳

线程池适合 短时间内重复并行的操作,但是线程数要严格把控,并且要使用固定数量的线程池才是最优速度

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
什么情形下适合使用线程池技术
线程池适用情况: 单位时间内处理数目巨大的连接请求,但处理时间相对较短。主要特点就是使用与创建技术,将线程创建和销毁本身带来的开销分摊到具体任务上,任务执行次数越多,则节省时间越多。再有一个就是线程池采用与创建技术创建的线程池规模一般有一个上界,可以解决一些服务器无法同时创建一定量数目线程的问题。线程池将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,
线程池&任务
1.线程池 1.无限制创建线程的缺点 #1:线程生命周期的开销。线程的创建与关闭不是“免费”的。实际的开销依据不同的平台不一样,而且创建线程是需要时间的,会带来请求的延迟。如果没处理一个请求创建一个线程就会大量消耗计算资源。 #2:资源消耗量。活动线程会消耗系统资源,尤其是内存,当可运行的线程多于可用的处理器数,线程则会空闲。大量的空闲线程占用更多的内存,给垃圾回收器带来压力,而且在竞争
实现一个所有任务都是按各自自定义的时间间隔周期性执行的线程池
实现一个所有任务都是按各自自定义的时间间隔周期性执行的线程池,用户可以控制是否继续发送、发送多少次、发送的时间周期等
统计线程池所有任务的运行总耗时
ExecutorService executor = Executors.newFixedThreadPool(10); long start = System.currentTimeMillis(); for (int i = 0; i < 10; i++) { executor.submit(() -> { ...
线程池你需要了解哪些
为什么用线程池 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 例如: 记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3 如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了! 正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销 线程并发数量过多,抢占系统资源从而
任务,线程和同步(四)之ThreadPool(线程池)
线程池任务后台基础:线程池。创建线程需要时间。如果有不同的短任务要完成,就可以事先创建许多线程,在应完成这些任务时发出请求,这个线程最好在需要更多的线程时增加,在需要释放资源时减少。 不需要自己创建这样的一个列表,该表由ThreadPool类托管,这个类会在需要时增减池中线程的线程数,直到达到最大线程数。池中的最大线程数是可配置的。在4核cpu中,默认设置为1023个工作线程,和1000个I/O线
理解线程池的笔记
知道线程池的人应该都知道线程池的优点,以下列出: 1,重用线程池中的线程,避免因为频繁的创建线程带来的性能下降; 2,能有效的控制线程池的最大并发数,避免以为其共同抢占资源而造成的阻塞, 3,能够对线程进行简单的管理,提供制定间隔和定时执行。 线程池java提供了一个借口Executor,真正的线程池实现靠下面的ThreadPoolExecutor,提供了一系列的参数来配置线程池,通过配置
线程池深入理解
java 线程池深入理解 合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控
线程池执行线程任务花费的时间
public class CounterPoolExecutor extends ThreadPoolExecutor { private AtomicInteger count = new AtomicInteger(0);//统计执行次数 private long startTime = System.currentTimeMillis(); private Strin...
并发编程实战学习笔记(六)——线程池的使用
任务与执行策略之间的隐性耦合依赖性任务 当在线程池中执行独立的任务时,可以随意地改变线程池的大小和配置,这些修改只会对执行性能产生影响。如果提交给线程池的任务需要依赖其它的任务,那么就隐含地给执行策略带来了约束,此时必须小心地维持这些执行策略以避免产生活跃性问题“线程饥饿死锁”。 使用线程封闭机制的任务 如果将Executor从单线程环境改为线程池环境,那么将会失去线程安全性。 对响应时间