多线程
文章平均质量分 75
_yosemite
后端开发工程师
展开
-
ExecutorCompletionService用法简介
一、ExecutorCompletionService二、Demo演示一、ExecutorCompletionService通常在执行一批需要返回结果的任务时,我们可以使用线程池来提高程序运行效率,通过线程池的 submit(Callable task) 不断提交异步任务,并将 Future 保存下来,之后遍历 Future,调用 get() 方法获取结果。虽然任务都是异步执行的,但是 get Future 结果是阻塞的。例如第一个 future 需要计算5s才能返回结果,但是其他 futu..原创 2022-02-20 16:23:47 · 985 阅读 · 0 评论 -
Object对象的wait、notify和notifyAll使用方法
Object对象的wait、notify和notifyAll使用方法一.先说答案,再进行讲解二.正确示例三.错误示例1四.错误示例2Object对象的wait、notify和notifyAll使用方法Object的wait、notify 和 notifyAll是Object提供的同步方法,也就是所有对象都生而带来的方法,估计搞java的没有不知道这几个方法的。那么他究竟是怎么使用的呢?一.先说答案,再进行讲解wait() 与 notify()/notifyAll() 是Obj..原创 2020-10-21 19:39:02 · 564 阅读 · 0 评论 -
Syschronized锁升级
Syschronized锁升级1.偏向锁1.1.为什么要引入偏向锁?1.2.偏向锁的升级1.3.偏向锁的取消2.轻量级锁2.1.为什么要引入轻量级锁?2.2.自旋锁、自适应自旋锁2.3.轻量级锁的升级3.重量级锁Syschronized锁升级锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)1.偏向锁1.1.为什么要引入偏向锁?因为经过HotSpot的作者大量的研究发现,大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个..原创 2020-07-19 23:49:26 · 181 阅读 · 0 评论