多线程
fo3hd
#走出舒适圈,勇于探索未知#
展开
-
高性能多任务处理实践之CompletionService
多任务处理是提升系统性能的理想选择,下面给出两种实现方案,分别介绍了ExecutorService结合Callable接口利用线程池提交任务,以及更高效的CompletionService接口实现多任务处理实践。 package thread; import java.util.concurrent.*; public class Refresh { private final Ex...原创 2018-02-10 15:54:12 · 250 阅读 · 0 评论 -
synchronized同步代码块顺序不当导致死锁
package com; public class Account { int debit(int money){ return 100 - money; } int credit(int money){ return 100 + money; } } package com; import java.util.co...原创 2018-03-05 00:00:35 · 1439 阅读 · 2 评论 -
java多线程异步和阻塞性调用方式
java多线程可以直接通过ExecutorService接口的execute方法提交任务,也可以通过invokeAll方法让多个任务一起提交,前者execute是异步提交,也就是说不会阻塞主线程,后则会阻塞主线程,等待所有任务执行完成主线程才回继续执行。其实不管是execute还是invokeAll,它们最终都会去执行Executor接口的execute(Runnable run)方法,下面是截取...原创 2018-04-26 11:39:10 · 962 阅读 · 0 评论 -
jdk线程池线程复用原理
今天去面试,面试官问到一个关于线程池的问题,就是java.util.concurrent包线程池有哪些,我大喜,这不容易吗,我甚至不用思考就回答出来了,面试官也点点头,以为就这样过去了? 面试官突然又问,线程池是怎么实现线程复用的? 好吧,我一下子蒙圈了,乱说了一通,很显然没有让面试官满意,于是就下个问题了…… 回来路上在想,平时有用线程池,但是这个问题真的是没有仔细思考过,也许是因为站在大神的...原创 2018-05-20 12:00:03 · 647 阅读 · 2 评论 -
并发编程之多线程等待重试
public static void main(String[] args) { CorpServicePayRecordEntity servicePayRecord = new CorpServicePayRecordEntity(); Thread t1 = new Thread(new Runnable() { @Override public void run() { ...原创 2019-03-29 15:41:29 · 1067 阅读 · 0 评论