Java并发编程实战 第6章 任务执行

本文深入探讨了Java并发编程中的任务执行,包括串行执行任务、线程池的创建与管理,尤其是Executor框架的使用。Executor通过解耦任务提交与执行,提供线程池管理,如固定长度线程池、可缓存线程池等,以及生命周期管理和延迟任务执行。此外,介绍了Callable与Future接口,用于返回任务结果。合理利用并行性,设置任务时限,能有效提高程序性能。
摘要由CSDN通过智能技术生成

6.1 在线程中执行任务

在理想情况下,各个任务之间时相互独立的:任务并不依赖于其他任务的状态、结果、边界效应。
应用程序性希望支持尽可能多的用户,从而降低每个用户的服务成本,而用户则希望获得尽快的响应。

6.1.1串行的执行任务

6.1.2 显示地为任务创建线程

只要请求到达的速率不超出服务器的处理能力。

6.1.3 无限制创建线程的不足

线程生命周期的开销非常高
资源消耗
稳定性:线程数的限制值随平台不同,并受JVM启动参数、Thread构造函数中栈大小、以及地层OS对线程的限制等。会抛出OOM等异常。

6.2 Excutor框架

任务是一组逻辑工作单元,而线程则是使任务异步执行的机制。
Excutor基于生产者-消费者,提供了一种标准方法将任务的提交过程与执行过程解耦开,并用Runnable表示任务,还提供了对生命周期的支持、统计信息、性能监视等。

6.2.1 例:基于Executor的web服务器

6.2.2 执行策略

使用Executor来代替Thread

6.2.3 线程池

指管理一组同构工作线程的资源池。
可以避免线程创建和销毁过程中有巨大的开销;请求到达时工作线程已经存在,因此不会由于等待创建线程而延迟;适当调整线程池的大小,可以创建足够多的的线程以便使处理气保持忙碌状态,同时还可以防止多线程相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值