使用线程来执行任务
围绕任务执行来组织程序的第一步是辨识合理的任务边界。理想情况下,任务是独立的活动:不依赖其他任务状态、结果或副作用的工作。独立性使得并发变得容易,因为在处理资源足够的前提下,独立任务可以并发执行。为了在调度上有更大的灵活度和加载平衡任务,每一个任务代表着应用程序处理能力的一个小片段。 服务端应用程序应该在正常加载情况下同时兼备好的吞吐量和好的响应能力。应用程序提供方想要让应用程序尽可能地支持更多的用户,以便减少单用户供应成本;用户希望能够得到快速的响应。而且,当应用程序过载后会变得功能退化,而不是在在重负荷情况下瘫痪。选择合适的任务边界及合理的任务执行策略可以帮助实现这些目标。 大多数服务端应用程序为任务边界提供了一个默认选择,就是单客户端请求。web服务器,邮件服务器,文件服务器,EJB容器和数据库服务器都接受来自远程客户端通过网络连接发来的请求。将单客户端请求作为任务边界,通常既提供了独立性,又提供了合适的任务大小。比如说,给邮件服务器发送消息,并不受其他正在编写中的消息的影响,并且处理单独的消息通常需只需要极少的服务器存储容量。 在线程中执行任务有两种方式:一种是在单线程中顺序执行任务,一种是为每一个任务创建一个线程进行处理。 1. 在单线程中顺序执行任务 import java.util.ArrayList; import java.util.List; public abstract class SingleThreadRenderer {...
2018 年 02 月 09 日 — 12 分钟前