摘要: 一.简介 在计算机执行程序时,每条指令都是在CPU中执行的,而执行指令的过程中必定会涉及到内存中数据的读取和写入,以往的计算机运行过程中数据都是存放在主内存中的,由于CPU的执行速度非常的快,导致相比数据的读取和写入的速度显得非常的慢这样会导致CPU执行效率也会大大的降低,由于这些因素的存在,慢慢的 阅读全文
posted @ 2018-07-26 19:02 Dorami 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 一、概述 ThreadLocal从字面上进行理解很容易被大部分人认为是本地线程,这是一个错误的理解。ThreadLocal可以理解为Thread局部变量ThreadLocalMap中的key值。 很多文章都会把ThreadLocal当作是解决高并发下线程不安全的一种做法,然而ThreadLocal并 阅读全文
posted @ 2018-07-25 23:13 Dorami 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 一、简介 读写锁是一种特殊的自旋锁,它把对共享资源对访问者划分成了读者和写者,读者只对共享资源进行访问,写者则是对共享资源进行写操作。读写锁在ReentrantLock上进行了拓展使得该锁更适合读操作远远大于写操作对场景。一个读写锁同时只能存在一个写锁但是可以存在多个读锁,但不能同时存在写锁和读锁。 阅读全文
posted @ 2018-07-22 16:30 Dorami 阅读(16333) 评论(0) 推荐(1) 编辑
摘要: 一、简介 JDK 5.0为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。ReentrantLock被作为 Java 语言中synchronized功能的替代类,它具有相同的内存语义、相同的锁定,但在大量争用条件下却有更好的性能,此外,它还有 synchronized关键字没有提供的其他特 阅读全文
posted @ 2018-07-21 16:21 Dorami 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 一、简介 Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、signal()这种方式实现线程间协作更加安全和高效。简单说,他的作 阅读全文
posted @ 2018-07-20 17:28 Dorami 阅读(1947) 评论(0) 推荐(0) 编辑
摘要: 一、简介 JDK1.5之前都是通过synchronized关键字实现并发同步,而JDK1.5以后Doug Lea大师开发了current包下的类,通过Java代码实现了synchronized关键字的语义。 然而在current包下的这些类的实现大部分都离不开一个基础组件 AQS(AbstractQ 阅读全文
posted @ 2018-07-16 00:14 Dorami 阅读(6606) 评论(0) 推荐(0) 编辑