首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
木叶114
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
深入理解 Java 线程池:ThreadPoolExecutor
本文比较详细的分析了线程池的工作流程: 分析了线程的创建,任务的提交,状态的转换以及线程池的关闭;介绍了线程池关闭时的过程,也分析了 shutdown 方法与 getTask 方法存在竞态条件等等。
【多线程06】AQS源码分析(互斥锁)
本文主要有以下内容: 注:本文分析的jdk版本为JDK11,不同版本的jdk在实现上具有差异! 什么是AQS? AQS全称是AbstractQueuedSynchronizer,是一个抽象类。为 Ja
【后端面经-Java】AQS详解
本文介绍了AQS的核心思想、基本架构、实现方法,并对框架中的重要源码方法进行介绍和分析,梳理了自定义同步锁的加锁流程。
基础篇:异步编程不会?我教你啊!CompletableFuture(JDK1.8)
以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简…
异步技巧之CompletableFuture
在上面的注释中我们能知道Future用来代表异步的结果,并且提供了检查计算完成,等待完成,检索结果完成等方法。简而言之就是提供一个异步运算结果的一个建模。它可以让我们把耗时的操作从我们本身的调用线程中释放出来,只需要完成后再进行回调。就好像我们去饭店里面吃饭,不需要你去煮饭,而…
强大的CompletableFuture
为了让程序更加高效,让CPU最大效率的工作,我们会采用异步编程。首先想到的是开启一个新的线程去做某项工作。再进一步,为了让新线程可以返回一个值,告诉主线程事情做完了,于是乎Future粉墨登场。然而Future提供的方式是主线程主动问询新线程,要是有个回调函数就爽了。所以,为了…
JAVA中各种锁介绍
这三种锁特指synchronized锁的状态,通过对象头中的mark work字段表示锁状态。 自始至终,对这把锁都不存在竞争,只需要做个标记,这就是偏向锁,每个对象都是一个内置锁(内置锁是可重入锁),一个对象被初始化后,还没有任何线程来获取它的锁时,那么它就是可偏向的,当有线…
Java锁详解:“独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁+线程锁”
乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。 乐观锁适…
ThreadPoolExecutor源码分析
只有了解线程池的几个状态,才能读懂它的核心源码。所以先说说这几个状态 shutdown: 该状态下的线程池不接收任何任务,但会等待正在运行的任务执行完。通常调用shutdown() 方法完成设置 stop: 该状态的线程池不接收任何任务,同时不会等待正在运行的任务执行完毕。通常…
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用
一、ThreadPoolTaskExecutor本文采用Executors的工厂方法进行配置。1、将线程池用到的参数定义到配置文件中在项目的resources目录下创建executor.propert