概念线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更强大,在提高CPU利用率的同时还会使开发人员对线程任务在处理的过程中进行有效地把控与监督。使用wait/not..
分类:
编程语言 时间:
2017-03-14 14:13:36
阅读次数:
268
一、为什么要有Unsfae、我们为什么要了解这个类 1. java通常的代码无法直接使用操作底层的硬件,为了使java具备该能力,增加了Unsafe类 2.java的并发包中底层大量的使用这个类的功能,了解这个类有助于了解java 并发包,理解为什么并发包中的类的并发性能为什么会比使用synchro ...
分类:
编程语言 时间:
2017-03-13 12:43:16
阅读次数:
436
曾经在 [高并发Java 五] JDK并发包1 中提到过ConcurrentHashMap,只是简单的提到了下ConcurrentHashMap的优点,以及大概的实现原理。 而本文则重点介绍ConcurrentHashMap实现的细节。 HashMap就不介绍了,具体请查看JDK7与JDK8中Has ...
分类:
其他好文 时间:
2017-02-22 20:05:10
阅读次数:
152
读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升 一般情况下,读写锁的性能都会比排它锁好,因为大多数场景读是多于写的。在读多于写的情况下,读写锁能够提供比排它锁更好的并发性和吞吐量。Java并发包提供读写锁的实现是ReentrantReadWrite ...
分类:
其他好文 时间:
2017-02-18 15:51:09
阅读次数:
266
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 ...
分类:
编程语言 时间:
2017-02-13 15:26:23
阅读次数:
167
走近AbstractQueuedSynchronizer 一、从类结构开始 Java并发包中的同步器是很多并发组件的基础,如各种Lock,ConcurrentHashMap中的Segment,阻塞队列,CountDownLatch等。按我们一贯的风格,让我们直接走近设计者对其的诠释。在java.ut ...
分类:
其他好文 时间:
2017-01-23 15:27:30
阅读次数:
289
CountDownLatch位于java.util.concurrent包下,是JDK1.5的并发包下的新特性。 首先根据Oracle的官方文档看看CountDownLatch的定义: A synchronization aid that allows one or more threads to ...
分类:
其他好文 时间:
2017-01-10 17:49:14
阅读次数:
340
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面大致的了解了Thread的一些方法和属性下面对一些方法进行运用看看具体效果<下面可能还是会贴很多的源 ...
分类:
编程语言 时间:
2017-01-04 18:32:40
阅读次数:
335
CountDownLatch实际上是一种闭锁实现。闭锁:是一种同步工具类,可以延迟线程的进度知道其到达终止状态——《Java并发编程实战》。这个怎么解释呢?简单来说,就是有1个线程需要等待其余10个线程都执行完毕后再执行,这个时候就可以使用闭锁,也即CountDownLatch(当然闭锁的实现并不止 ...
分类:
其他好文 时间:
2016-12-15 00:48:26
阅读次数:
170
自定义线程池的核心:ThreadPoolExecutor为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent包下,是JDK并发包的核心,比如我们熟知的Executors。Executors扮演着线程工厂的角色,我们通过它可以创建特定功能..
分类:
编程语言 时间:
2016-12-11 18:52:07
阅读次数:
223