Java 异步编程实践 Java 异步编程实践提供了一个非阻塞的,事件驱动的编程模型。在这个模型中,一个工作单元将独立于主应用线程而执行,并且会将它的状态通知调用线程:成功、处理中或者失败。这种编程方式可以使用同样的线程来处理多个请求,这些请求不会阻塞这个线程。 异步编程模型的优点是可以提高应用的吞吐率。在这种编程方式下,应用可以并发执行多个任务,而不需要等待某个任务完成。例如,在log框架中,如果对log框架的调用是异步地,应用就可以并发执行其它任务而无需等待。 在Java中实现异步编程需要使用Future和FutureTask,它们位于java.util.concurrent包下。Future是一个接口而FutureTask是它的一个实现类。使用Future可以实现异步任务的执行,并且调用线程可以得到结果promise。 异步编程模型的使用需要遵循一定的原则。例如,在Java中编写异步代码时,应该遵循异步模型,这样调用线程就不会被阻塞。构造函数不能是异步的,不应该在构造函数中调用异步方法。任务互相不依赖时异步方式尤其有用。当调用任务依赖被调用任务时不应该使用异步。 异步编程模型也存在一些缺点。例如,回调模型的弊端就是当回调嵌套时很麻烦。在异步方法中需要处理异常,并且不应该为长时间的task实现异常。同步异常和异步异常有所不同,异步异常的跟踪则困难的多。 异步编程模型对于设计大规模快速响应的应用是至关重要的。异步回调模型带来了很多的好处;你可以依赖你的异步回调方法来执行昂贵的I/O操作,而你的处理器可以执行其它任务。但是,异步编程并不总是那么容易实现,需要谨慎使用。 本文中,我们介绍了异步编程的概念, 以及使用Java编程需要怎么去实现。本文也列出了使用异步编程的最佳实践。我们还介绍了Java 7中的Fork/Join框架和Java 8中的parallelStream,它们可以将一个大的task分割成很多可以并行执行的小task。
- 粉丝: 1
- 资源: 924
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- apache-maven-3.6.1-bin.zip
- c593f5fc-d4a7-4b43-8ab2-51afc90f3f62
- IIR滤波器参数计算函数
- WPF树菜单拖拽功能,下级目录拖到上级目录,上级目录拖到下级目录.zip
- CDH6.3.2版本hive2.1.1修复HIVE-14706后的jar包
- 鸿蒙项目实战-天气项目(当前城市天气、温度、湿度,24h天气,未来七天天气预报,生活指数,城市选择等)
- Linux环境下oracle数据库服务器配置中文最新版本
- Linux操作系统中Oracle11g数据库安装步骤详细图解中文最新版本
- SMA中心接触件插合力量(插入力及分离力)仿真
- 变色龙记事本,有NPP功能,JSONview功能