并发编程
文章平均质量分 97
双子孤狼
关注孤狼,和孤狼一起学习!
知道的多一点,不知道的就少一点!
创作不易,如需转载,请注明出处!
展开
-
助力面试之ConcurrentHashMap面试灵魂拷问,你能扛多久
ConcurrentHashMap面试十连问,你能扛到第几问?原创 2021-03-08 20:27:33 · 4700 阅读 · 16 评论 -
【并发编程系列13】Future/Callable/FutureTask:线程池也是可以有返回值的
Future/Callable/FutureTask原理分析前言Future/Callable初体验Callable用法Future用法Callable和Future原理分析Callable原理分析Future原理分析FutureTask分析如何利用FutureTask/Callable创建线程FutureTask状态分析线程池的submit方法和execute方法区别总结前言之前我们介绍线程的基础知识以及线程池的时候,所有的线程都有一个共同的特点,那就是只管执行,我们不知道是否执行成功,也拿不到线程执原创 2020-10-14 16:53:50 · 1283 阅读 · 3 评论 -
【并发编程系列12】从Java线程池的常用4种写法深入分析线程池(Thread Pool)的实现原理
Thread Pool实现原理写在前面的话11写在前面的话并发编程里面,线程池这个一直就想写一篇文章来总结下,但是直到并发编程系列的第12篇才写的原因是线程池里面用到了AQS同步队列和阻塞队列等一些知识,所以为了铺垫,就先把前面的知识点写完了,到现在,终于可以总结一下线程池的实现原理了。11...原创 2020-07-29 20:54:26 · 1854 阅读 · 9 评论 -
【并发编程系列11】Java中12个原子(Atomic)操作类实现原理分析
Java中的12个原子操作类前言原子更新基本类型AtomicInteger代码示例AtomicBooleanAtomicLong原子更新数组AtomicIntegerArray代码示例AtomicLongArrayAtomicReferenceArray代码示例:原子更新引用类型AtomicReference代码示例AtomicMarkableReference示例AtomicMarkableReference原理分析AtomicStampedReference原子更新属性AtomicIntegerFiel原创 2020-07-22 18:34:00 · 1193 阅读 · 7 评论 -
【并发编程系列10】阻塞队列之SynchronousQueue,LinkedTransferQueue原理分析
LinkedTransferQueue,SynchronousQueue原理分析前言LinkedTransferQueueSynchronousQueue前言前面我们介绍了ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque,PriorityBlockingQueue,DelayQueue五种阻塞队列,今天继续介绍LinkedTransferQueue和SynchronousQueue两个阻塞队列。LinkedTransferQueue原创 2020-07-19 11:15:12 · 1011 阅读 · 8 评论 -
【并发编程系列9】阻塞队列之PriorityBlockingQueue,DelayQueue原理分析
PriorityBlockingQueue,DelayQueue原理分析前言PriorityBlockingQueueDelayQueue前言前面我们介绍了ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque三种阻塞队列,今天继续介绍其他阻塞队列PriorityBlockingQueuePriorityBlockingQueue是一个支持优先级的无界阻塞队列。默认情况下元素采取自然顺序 升序排列。也可以自定义类实现compareTo()原创 2020-07-12 10:36:31 · 2087 阅读 · 2 评论 -
【并发编程系列8】阻塞队列之ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque原理分析
阻塞队列原理分析前言前言上一篇我们分析了原创 2020-07-05 11:24:26 · 2031 阅读 · 4 评论 -
【并发编程系列7】CountDownLatch,CyclicBarrier,Semaphore实现原理分析
CountDownLantch,CyclicBarrier,Semaphore原理分析前言前言上一篇我们分析了原创 2020-07-01 20:17:51 · 1778 阅读 · 2 评论 -
【并发编程系列6】Condition队列原理及await和singal(等待/唤醒)机制源码分析
Condition队列原理分析前言前言上一篇我们分析了原创 2020-06-28 20:47:15 · 2560 阅读 · 2 评论 -
【并发编程系列5】JUC必知ReentrantLock和AQS同步队列实现原理分析
ReentrantLock和AQS队列前言Lock前言Lock原创 2020-06-25 11:21:27 · 2610 阅读 · 5 评论 -
【并发编程系列1】Thread生命周期及interrupted()作用分析
Thread状态及interrupted作用分析什么是线程线程如何启动线程的状态interrupted()作用什么是线程线程如何启动线程的状态interrupted()作用原创 2020-06-18 20:32:31 · 2853 阅读 · 9 评论 -
【并发编程系列4】JMM中happens-before规则和as-if-serial语义
happens-before规则和as-if-serial语义先行发生原则(happens-before)什么是happens-beforehappens-before规则示例as-if-serial语义总结先行发生原则(happens-before)我们知道,在Java内存模型中,如果要确保有序性可以靠volatile和synchronized来实现,但是如果所有的有序性都仅仅依靠这两个关键字来完成,那么有一些操作将会变得很繁琐,但是我们在编写Java代码的时候并没有感觉到这一点,这是因为Java语言原创 2020-05-24 21:44:24 · 2381 阅读 · 15 评论 -
【并发编程系列3】volatile内存屏障及实现原理分析(JMM和MESI)
volatile实现原理分析原创 2020-05-24 19:55:19 · 11445 阅读 · 37 评论 -
【并发编程系列2】synchronized锁升级原理分析(偏向锁-轻量级锁-重量级锁)
synchronized原理分析初识 synchronizedsynchronized 用法锁是如何存储的synchronized 锁升级偏向锁偏向锁的获取偏向锁的撤销偏向锁及撤销流程图偏向锁注意事项轻量级锁轻量级锁加锁轻量级锁解锁轻量级锁及膨胀流程图自旋锁自适应自旋重量级锁锁的优缺点对比初识 synchronized在并发编程中,synchronized对我们来说并不陌生,我们都知道,当多个线程并行的情况下,程序是不安全的,这个不安全主要发生在共享变量的不安全,我们通过一个例子来说明:package原创 2020-05-23 21:40:00 · 8509 阅读 · 17 评论