并发编程
文章平均质量分 68
并发编程
draymond7107
我回来了⊙▽⊙
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Thread-构造函数,属性详解
如:main线程启动的 ThreadGroup 是main, main中启动的线程的 ThreadGroup 默认也是main。daemon线程会一致存在,直到所有的普通线程终止,然后daemon线程才会终止,进而jvm线程终止。意义:线程组,默认使用 parent所在的线程组( parent:创建当前线程的线程)潜在问题:如果是短期的辅助任务,不应该使用daemon线程,因为该线程无法被终止。问题: 有多个daemon线程,部分任务线程终结,daemon线程怎么变化。该线程组中活着的线程数量。原创 2023-12-24 17:39:33 · 535 阅读 · 0 评论 -
FutureTask
获取执行结果。原创 2023-12-05 11:06:51 · 479 阅读 · 0 评论 -
JUC-CountDownLatch
允许一条或多条线程等待其他线程中一组操作完成后,再继续执行收集龙珠,召唤神龙:委派7个人同时收集,主人一直等待,直到7个人完成后,主人再继续召唤神龙。原创 2023-12-04 16:01:10 · 470 阅读 · 0 评论 -
JUC-ReentrantLock
基于AQS,在并发编程中实现公平锁、非公平锁对共享资源进行同步,同时,和synchorized一样支持重入,除此之外,调度上更加灵活。加锁,一直等待,直到获取成功(假如当前线程在等待锁时被中断,则退出等待,抛出中断异常)在一段时间内获取锁(假如当前线程在等待锁时被中断,则退出等待,抛出中断异常)新建一个绑定在当前对象上的condition对象。唯一的变量 Sync,一旦被指定,后期无法修改。ReentrantLock 实现Lock接口。加锁,一直等待,直到获取成功。尝试获取锁,并立即返回。原创 2023-12-03 22:39:37 · 899 阅读 · 0 评论 -
JUC-AQS
Queues:队列Synchorizer: 同步阻塞。原创 2023-12-03 17:00:12 · 292 阅读 · 0 评论 -
synchorized的原理、锁升级
synchorized的原理、锁升级1. 原理1.1 class字节码1.2 jvm层面1.3 硬件2. 锁升级1. 原理1.1 class字节码ACC_SYNCHORIZED1.2 jvm层面C C++调用了操作系统的同步机制1.3 硬件lock comxchg XXXX2. 锁升级参考文章:Synchronized升级过程总结...原创 2021-08-11 22:10:26 · 294 阅读 · 0 评论 -
volatile的作用与原理
volatile的作用与原理1. 作用1.1 内存屏障1.2 内存可见性2. 原理2.1 怎么实现内存屏障2.1.1 class字节码2.1.2JVM层面2.1.3硬件层面3. 为什么出现内存屏障4. 怎么保证缓存一致性4.1 JVM层面4.2 硬件层面1. 作用1.1 内存屏障1.2 内存可见性2. 原理2.1 怎么实现内存屏障2.1.1 class字节码ACC_VOLATILE2.1.2JVM层面1)StareStoreBarriervolatile写StoreLoadBarri原创 2021-08-11 22:06:03 · 344 阅读 · 0 评论 -
多线程大纲
注: 本文章参考汪文君大佬的视频第一阶段线程定义创建并启动线程线程生命周期以及start方法源码剖析多线程方式模拟银行排队叫号thread与runnable多线程与JVM内存结构的关系,虚拟机栈实验Thread构造函数StackSizDaemon线程的创建以及使用场景分析线程ID,优先级讲解join方法、案例中断Interrupt方法结束线程生命周期Synchronizedthis锁、class锁死锁线程间的通信生产者与消费者(线程假死)wait和sleep的本质.原创 2021-02-22 13:19:22 · 280 阅读 · 0 评论
分享