
并发编程
可可keketrtr
QQ:564964596
微信:keketrtr
展开
-
在Spring异步调用中传递上下文的方法(解决异步线程RequestContextHolder.getRequestAttributes()为null)
什么是异步调用?异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。异步调用指,在程序在执行时,无需等待执行的返回值即可继续执行后面的代码。在我们的应用服务中,有很多业务逻辑的执行操作不需要同步返回(如发送邮件、冗余数据表等),只需要异步执行即可。本文将介绍 Spring 应用中,如何实现异...转载 2020-04-09 20:01:57 · 23334 阅读 · 4 评论 -
将复杂的大任务拆分成多个简单的小任务进行计算
package thread;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import java.util.concurrent.RecursiveTask;/**原创 2015-07-09 16:10:55 · 6073 阅读 · 0 评论 -
线程池工作队列饱和策略
转载自http://blog.youkuaiyun.com/lixwjava/article/details/51813032近段时间在看《Java并发编程实战》,第一遍每天看一章也没敲代码,并没吸收多少。看第二遍的时候压下速度,并敲代码,感觉理解深刻好多,废话止于此。Java线程池会将提交的任务先置于工作队列中,在从工作队列中获取(SynchronousQueue直接转载 2017-05-12 15:09:48 · 963 阅读 · 0 评论 -
并行执行(Callable和Future)一定比串行执行效率高吗?
在一个程序里顺序调用了两个不相关的方法A和B,A耗时100毫秒,B耗时80毫秒,所以总共耗时180毫秒。main(){methodA;methodB;}因为方法A和B不相关,所以我们可以将程序改造成并行执行,使用Callable和Future配合实现(只讨论需要A和B的返回值的情况)。main(){ExecutorService executor = Executo原创 2017-09-30 16:21:37 · 2349 阅读 · 0 评论