并发编程
文章平均质量分 90
学习并发知识原理,掌握并发类库
JavaCodeGirl
程序媛的学习笔记
展开
-
避免死锁危险
在并发环境中,我们为了保证共享可变数据的线程安全性,需要使用加锁机制,如果锁使用不当可能会引起死锁,线程饥饿等问题。 在Java应用程序中如果发生死锁,程序是无法自动恢复的,严重会造成程序崩溃,所以开发中在设计阶段就要规避死锁发生的情况。 什么是死锁 死锁:每个线程拥有其他线程需要的资源,同时又等待其他线程拥有的资源,并且每个线程在获得所需要的资源前都不会放弃已经拥有的资源。 程序死锁发生的场景: 1)交叉锁导致死锁 在线程A持有锁L并想获取锁R的同时,线程B持有锁R并尝试获得锁L,那么这两个线原创 2021-04-27 19:39:08 · 231 阅读 · 0 评论 -
面试官这么问你,你如何回答?
勾勾收罗了小伙伴们的面试题目,把并发编程的面试题目总结如下,作为大家面试的参考。 Q:线程的状态有哪些? 线程的生命周期大致分为5个阶段: NEW(新建):新建一个Thread对象时,此时还没有线程。 RUNNABLE(就绪):调用start方法可以使线程进入就绪状态。 RUNNING(运行):处于就绪状态的线程获得了CPU就可以执行业务,进入运行状态。 BLOCKED(阻塞):处于运行状态的线程如果调用了sleep、wait方法或者竞争锁失败会进入阻塞状态。 TERMINATED(终止):线原创 2021-04-27 19:38:18 · 174 阅读 · 0 评论 -
Future
线程异步的处理方式原创 2021-04-21 16:39:33 · 120 阅读 · 0 评论 -
线程池原理
目录 ThreadPoolExecutor介绍 提交任务execute 线程池关闭 Executors工具类 在前面的文章中,每次涉及到创建线程勾勾使用的都是new Thread的这种方式,但是开发中勾勾可是不会这么用的。我们看一下在实际开发中创建线程的规范,阿里巴巴Java开发手册上《并发处理》第3项和第4项规定: 【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题。如果不使原创 2021-04-21 16:38:43 · 84 阅读 · 0 评论 -
阻塞队列BlockingQueue
7种阻塞队列供您选择原创 2021-04-21 16:37:52 · 469 阅读 · 0 评论 -
阶段器Phaser
阶段器,JUC中的冷门知识原创 2021-04-14 16:54:57 · 139 阅读 · 0 评论 -
许可证Semaphore
许可证,限制访问量原创 2021-04-14 16:52:29 · 291 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier
减数计数器和循环栅栏原创 2021-04-08 15:16:49 · 4273 阅读 · 2 评论 -
线程间通信Condition
线程间通信Condition原创 2021-04-08 14:24:29 · 282 阅读 · 0 评论 -
ReadWriteLock和StampedLock
读写锁原创 2021-03-08 17:37:57 · 908 阅读 · 0 评论 -
显式锁ReentrantLock
AQS独占模式的实现原创 2021-03-08 17:30:37 · 203 阅读 · 0 评论 -
AQS之条件等待模式
AQS条件等待原创 2021-01-22 01:04:50 · 431 阅读 · 0 评论 -
AQS之共享模式
AQS共享模式源码分析原创 2021-01-21 00:30:10 · 982 阅读 · 0 评论 -
AQS之独占模式
AQS独占模式下的源码分析原创 2021-01-14 00:09:48 · 641 阅读 · 0 评论 -
ThreadLocal源码分析
ThreadLocal源码解读,内存泄漏原创 2021-01-12 20:49:30 · 174 阅读 · 0 评论 -
以volatile视角看JMM
volatile关键字原创 2021-01-11 23:02:31 · 94 阅读 · 0 评论 -
一文读懂内存模型
JMM内存模型原创 2021-01-08 20:02:59 · 506 阅读 · 0 评论 -
synchronized关键字
synchronized详解,锁升级过程原创 2021-01-08 19:54:18 · 250 阅读 · 0 评论 -
多线程基础知识
了解线程Thread类原创 2021-01-07 15:12:12 · 93 阅读 · 0 评论