Copy On Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 ...
分类:
其他好文 时间:
2020-03-31 23:08:14
阅读次数:
65
Java并发包下锁学习第二篇队列同步器 还记得在第一篇文章中,讲到的locks包下的类结果图吗?如下图: ? 从图中,我们可以看到AbstractQueuedSynchronizer这个类很重要(在本文中,凯哥就用AQS来代替这个类)。我们先来了解这个类。对这个类了解之后,学习后面的会更容易了。 本 ...
分类:
编程语言 时间:
2020-03-31 12:26:52
阅读次数:
70
java的线程池的工作队列用到了并发队列。队列一般用在生产者消费者的场景中,处理需要排队的需求。 你好,我是李福春,今天的问题是: ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别? 答:都是java提供的并发安全队列,都提供了等待性的操作,take,pu ...
分类:
编程语言 时间:
2020-03-30 20:03:09
阅读次数:
111
本文源码:GitHub·点这里||GitEE·点这里一、并发问题多线程学习的时候,要面对的第一个复杂问题就是,并发模式下变量的访问,如果不理清楚内在流程和原因,经常会出现这样一个问题:线程处理后的变量值不是自己想要的,可能还会一脸懵的说:这不合逻辑吧?1、成员变量访问多个线程访问类的成员变量,可能会带来各种问题。publicclassAccessVar01{publicstaticvoidmain
分类:
编程语言 时间:
2020-03-30 00:22:20
阅读次数:
83
说明 本篇是继上一篇并发编程未讨论完的内容的续篇。上一篇传送门: "Java并发编程一万字总结(吐血整理)" 活跃性问题 在上一篇我们讨论并发编程带来的风险的时候,说到其中 一个风险就是活跃性问题。活跃性问题其实就是我们的程序在某些场景或条件下执行不下去了。在这个话题下我们会去了解什么是死锁、活锁以 ...
分类:
其他好文 时间:
2020-03-29 12:32:06
阅读次数:
62
事情是这样的,前些日子和得知一个读者在准备阿里的面试,我蛮有兴趣的跟他聊了起来,随着话题越来越深入,我发现这位读者有意思,他和几位阿里的工程师之前编写了一本 ,我一搜发现不得了,这完全是一本书啊,截图看一下他的目录 随便翻一下,发现有大量的测试和例子,而且文末也附上了参考链接,很不错。 非常系统,并 ...
分类:
编程语言 时间:
2020-03-29 10:48:24
阅读次数:
87
Java并发编程之-set集合的线程安全类 Java中set集合怎么保证线程安全,这种方式你知道吗? 在Java中set集合是 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《并发集合系列》教程的第二篇: 本文主要内容:Set集合子类底层分别是什么?基于底层为什么set的子类可以 ...
分类:
编程语言 时间:
2020-03-29 10:47:53
阅读次数:
92
Java并发编程之CAS二源码追根溯源 在上一篇文章中,我们知道了什么是CAS以及CAS的执行流程,在本篇文章中,我们将跟着源码一步一步的查看CAS最底层实现原理。 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《CAS系列》教程的第二篇:从源码追根溯源查看CAS最底层是怎么实现 ...
分类:
编程语言 时间:
2020-03-25 23:13:05
阅读次数:
88
| 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 "Github实践精选" ,方便 ...
分类:
编程语言 时间:
2020-03-25 23:07:21
阅读次数:
85
Java并发编程之验证volatile不能保证原子性 通过系列文章的学习,凯哥已经介绍了volatile的三大特性。1:保证可见性 2:不保证原子性 3:保证顺序。那么怎么来验证可见性呢?本文凯哥(凯哥Java:kaigejava)将通过代码演示来证明为什么说volatile不能够保证共享变量的原子 ...
分类:
编程语言 时间:
2020-03-22 10:57:19
阅读次数:
98