首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
小雷97
更多收藏集
微信扫码分享
微信
新浪微博
QQ
53篇文章 · 0订阅
深入浅出Java线程池:源码篇
在上一篇文章深入浅出Java线程池:理论篇中,已经介绍了什么是线程池以及基本的使用。(本来写作的思路是使用篇,但经网友建议后,感觉改为理论篇会更加合适)。本文则深入线程池的源码,主要是介绍ThreadPoolExecutor内部的源码是如何实现的,对ThreadPoolExec…
聊聊 Java 多线程(1)- 什么是多线程
目前,多线程编程可以说是在大部分平台和应用上都需要实现的一个基本需求。本系列文章就来对 Java 平台下的多线程编程知识进行讲解,从概念入门、底层实现到上层应用都会涉及到,预计一共会有五篇文章,希望对
CAS都不了解,你还怎么看J.U.C
说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现。 悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中的synchro…
【并发编程系列5】JUC必知ReentrantLock和AQS同步队列实现原理分析
前言锁是一种用来控制多线程访问共享资源的工具。通常,锁可以独占共享资源:同一时间只有一个线程可以获得锁,并且所有访问共享资源的线程都必须首先获得锁。前面我们介绍过了synchronized,使用syn
AQS源码分析
AQS的等待队列如下图,注意head是不在等待队列中的。 创建ReentrantLock时,指定了入参true,这里要说明ReentrantLock在内部通过Sync管理锁,有公平和非公平两种,我们这里使用公平锁。 在tryAcquire尝试获取锁失败后,会进入acquireQ…
Java线程池源码分析
本文章讲解的内容是Java线程池源码分析。 本文章分析的相关的源码基于Java Development Kit(JDK) 13。 线程是操作系统的内核资源,是CPU调度的最小单位,所有的应用程序都运行在线程上,它是我们实现并发和异步的基础。在Java的API中,Thread是实…
AQS基础——多图详解CLH锁的原理与实现
自旋锁说白了也是一种互斥锁,只不过没有抢到锁的线程会一直自旋等待锁的释放,处于busy-waiting的状态,此时等待锁的线程不会进入休眠状态,而是一直忙等待浪费CPU周期。
并发容器与并发控制 - JUC(三)
很简单,别想太多,就是因为性能不好。 look, look, 这个synchronized是直接修饰在方法上的,如果你上下翻翻,就可以发现基本上这个类的所有方法都是synchronized修饰的。 Hashtable也是如此。 同时扩容时,只会保留一个扩容的数组。 多线程同时扩…
【漫画】互斥锁ReentrantLock不好用?试试读写锁ReadWriteLock
ReentrantLock完美实现了互斥,完美解决了并发问题。但是却意外发现它对于读多写少的场景效率实在不行。此时ReentrantReadWriteLock来救场了!一种适用于读多写少场景的锁,可以
漫谈Java线程状态
Java语言定义了 6 种线程状态,在任意一个时间点中,一个线程只能只且只有其中的一种状态,并且可以通过特定的方法在不同状态之间进行转换。 今天,我们就详细聊聊这几种状态,以及在什么情况下会发生转换。 要想知道Java线程都有哪些状态,我们可以直接来看 Thread,它有一个枚…