java异步编程最佳实践-java开发java经验技巧

java异步编程最佳实践-java开发java经验技巧

ID:31191959

大小:68.50 KB

页数:2页

时间:2019-01-07

java异步编程最佳实践-java开发java经验技巧_第1页
java异步编程最佳实践-java开发java经验技巧_第2页
资源描述:

《java异步编程最佳实践-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java异步编程最佳实践-编程开发技术Java异步编程最佳实践译文出处:colobu.com丿京文出处:developer.com什么是异步?为什么要用它?异步编程提供了一个非阻塞的,事件驱动的编程模型。这种编程模型利用系统中多核执行任务來提供并行,因此提供了应用的吞叶率。此处吞吐率是指在单位时间内所做任务的数量。在这种编程方式下,一个工作单元将独立于主应用线程而执行,并且会将它的状态通知调用线程:成功,处理中或者失败。我们需要异步來消除阻塞模型。其实异步编程模型可以使用同样的线程來处理多个请求,这些请求不会阻塞这个线程。想象一个应用正在使用的线程正在执行任务,然后等待

2、任务完成才进行下一步。log框架就是一个很好的例子:典型地你想将异常和错误日志记录到一个口标屮,比如文件,数据库或者其它类似地方。你不会让你的程序等待日志写完才执行,否则程序的响应就会受到影响。相反,如果对log框架的调用是异步地,应用就可以并发执行其它任务而无需等待。这是一个非阻塞执行的例子。为了在Java中实现异步,你需要使用Future?和?FutureTask,它们位于java.util,concurrent下.?Future是一个接口而FutureTask是它的一个实现类。实际上,如果在你的代码中使用Future,你的异步任务会立即执行,并且调用线程可以得到结

3、果promisee下面的代码片段定义了一个包含两个方法的接口。一个是同步方法,另外一个是界步方法。importjava.util,concurrent.Future;publicinterfaceTDataManager{//synchronousmethodpublicStringgetDataSynchronously();//asynchronousmethodpublicFuturegetDataAsynchronously();值得注意的是回调模型的弊端就是当回调欧套时很麻烦。该做和不该做的为了方便测试,你应该在代码中将功能从多线程中隔离出来。

4、当在Java中编写异步代码时,你应该遵循异步模型,这样调用线程就不会被阻塞。注意构造函数不能是异步的,你不应该在构造函数中调用异步方法。当任务•互相不依赖吋异步方式尤其有用。当调用任务依赖被调用任务吋不应该使用异步(译者按:这对异步來说无意义,因为业务上调用线程被阻塞了).你应该在异步方法小处理异常.你不应该为长时间的task实现异常.一个长时间运行的任务,如果异步执行的话,可能会比同步执行耗费更长的时间,因为运行时要为异步执行的方法执行线程上下文的切换,线程状态的存储等.你也应该注意同步的异常和异步的异常有所不同。同步异常暗示每次程序执行到那个程序特殊状态时就会抛出异

5、常;异步异常的跟踪则困难的多。所以同步和异步异常暗示同步或异步代码可能抛出异常(synchronousandasynchronousexceptionsimplysynchronousorasynchronouscodeinyourprogramthatmightraiseexceptions.)0推荐阅读1・https://msdn.microsoft.com/en-us/magazine/dn818494.aspx2・http://docs.oracIc>comyjavacc/6/tutoriaI/doc/gkicz.html3.https://technology

6、.amis.nl/2009/02/19/asynchronous-processing-in-java-applications-leveraging-those-multi-cores/4.http://javarevisited.blogspot.in/20i5/01/how-to-use-future-and-futuretask-in-Java.html5.http://www.codeproject.com/Articles/562021/Asynchronous-models-and-patterns总结界步对于设计大规模快速响应的应用是至关重要的。开步冋调

7、模型带来了很多的好处;你可以依赖你的异步回调方法来执行昂贵的I/O操作而你的处理器可以执行其它任务。然而虽然在Java和C#中提供了异步的支持,异步编程并不总是那么容易实现。异步方式的使用要谨慎:你应该清楚什么时候可以用和什么时候不该用。木文屮我们介绍了异步编程的概念,以及使用J^a编程需要怎么去实现.本文也列出了使用异步编程的最佳实践。谢谢阅读。译者增加的内容Java7中提供了Fork/Join框架,可以将一个大的task分割成很多可以并行执行的小taskoJava8'I1parallelstream内部利用Fork/Join执行并发操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。