ThreadLocal 大家都不陌生,存储线程变量,线程间是隔离的,互不影响,一般我们在保存或者传递上下文信息会使用
但是有一定的局限性,比如不支持子线程的传递,我们如果在父线程开了多线程处理逻辑,在多线程中就丢失了父线程存储的变量
这时我们可以使用 Inherit...
汪明鑫
3年前 (2021-12-07) 570浏览 0评论
2喜欢
认识锁升级
Java锁是为了防止进程多线程并发访问临界资源造成数据安全问题的
申请锁需要发起系统调用,向操作系统内核申请锁,是一个比较重的操作
Jvm对锁做了多次优化,避免上来就直接怼成重量锁。
于是乎就有锁升级,带着学习的目的一探究竟,而不是浮在表面。
锁升级的过...
汪明鑫
3年前 (2021-11-17) 597浏览 0评论
5喜欢
谈AQS 首先需要聊到多线程并发
多线程并发操作内存数据,会出现线程安全的问题
因此引入了锁的概念,只允许一个线程争抢到锁,进行后续操作,其他线程阻塞
就类比高速公路收费站,车辆都是有序排队的通过收费站,一辆车过去缴费时,后面的车是排...
汪明鑫
5年前 (2020-03-20) 817浏览 2评论
0喜欢
JUC 知识体系,需要学习掌握 ,learn ING
上图只是冰山一角,JUC里还有很多东西,打算以这个图为中心发散深入的进行下学习
感觉JUC工作中用的不多,而且在jdk中是比较难的一部分,比较枯燥、难啃。。。慢慢整吧
博客和书该看还是要看,源码该...
汪明鑫
5年前 (2020-03-20) 687浏览 0评论
0喜欢
线程池介绍
线程池
见上一篇文章
线程池工作原理
【当一个任务被添加进线程池时】
1.线程数量未达到corePoolSize,则新建一个线程(核心线程)执行任务
2.线程数量达到了corePoolSize,则将任务移入队列等待
3.队列已满,新建线程(非核心线程...
汪明鑫
5年前 (2020-02-20) 868浏览 0评论
0喜欢
wait & notify
之前学习过wait和notify,但是总是理不清楚,不太明白,今天整理一篇博客,
争取把wait和notify搞明白。
wait和notify是Object的方法,而不是Thread的方法。
Object的wait...
汪明鑫
6年前 (2019-01-12) 819浏览 2评论
0喜欢
多个线程争抢同一个monitor的lock会陷入阻塞。
看代码:
/**
* @author: wang ming xin
* @create: 2019-01-12 11:00
*/
public class ThisMonitor {
p...
汪明鑫
6年前 (2019-01-12) 1107浏览 0评论
0喜欢
如果某个支持两个或者多个动作同时存在,那么这个系统就是并发系统;如果某个支持两个或者多个动作同时执行,那么这个系统就是并行系统。
在并发程序中可以同时拥有两个或者多个线程。如果程序在单核处理器上运行,那么这两个线程将会交替的换入或换出内存,这些线程是同时存在的。
如果程序能够并行...
汪明鑫
6年前 (2018-09-04) 797浏览 0评论
0喜欢
这个在面试美团时让手写了,并说出如何理解,差点忘了
public static Singleton getInstance()
{
if (instance == null) //1
{
synchroniz...
汪明鑫
6年前 (2018-09-04) 984浏览 1评论
0喜欢
任务数量多时,用线程池更快
先看下Executor整体架构
那么Executors是什么?
类比Array、Arrays,Collection、Collections
-s表示工具类
用底层,看顶层,想要用一个框构的底层、实现类,先要看其最顶层
public i...
汪明鑫
6年前 (2018-08-28) 930浏览 1评论
0喜欢