- 博客(13)
- 资源 (8)
- 收藏
- 关注
转载 java8中对ConcurrentHashMap的改进
一、简单回顾ConcurrentHashMap在jdk1.7中的设计 先简单看下ConcurrentHashMap类在jdk1.7中的设计,其基本结构如图所示:每一个segment都是一个HashEntry[] table, table中的每一个元素本质上都是一个HashEntry的单向队列。比如table[3]为首节点,table[3]->next为节点1,之后为节点2,依次类
2016-07-30 18:07:57 10000
转载 TreadLocal详解
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独
2016-07-30 14:32:06 1179
原创 java多线程--condition条件
概要前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condition示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍Condition的作用是对锁进行更精确的控
2016-07-24 20:56:54 3453 3
转载 java多线程--JUC集合框架
概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498454.htmlJava集合包在“Java 集
2016-07-12 17:47:52 1534
原创 java 8 中的stream
Java 8 中的 Streams 详解Java 8 是迄今为止在语义上改动上最大的一个平台。除了最显著的 Lambda 表达式之外,还有很多初次见面的特性,例如本文主题的 Streams API。这里介绍了它出现的背景和具体用法。为什么需要 StreamStream 作为 Java 8 的一大
2016-07-11 14:51:41 1843 1
原创 ClassLoader和Class.forName
Class的装载分了三个阶段,loading(加载),linking(在这个过程中,又包括了验证,准备和解析三个阶段)和initializing(初始化),分别定义在The Java Language Specification的12.2,12.3和12.4。在源码中,可以发现,实际上Class.forName(className) 是调用Class.forName(className, true,
2016-07-08 22:58:33 803
转载 java多线程--公平锁(四)
释放公平锁(基于JDK1.7.0_40)1. unlock()unlock()在ReentrantLock.java中实现的,源码如下:public void unlock() { sync.release(1);}说明:unlock()是解锁函数,它是通过AQS的release()函数来实现的。在这里,“1”的含义和“获取锁的函数acquire(1)的含
2016-07-01 18:51:41 643
转载 java多线程--公平锁(三)
获取公平锁(基于JDK1.7.0_40)通过前面“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock”的“示例1”,我们知道,获取锁是通过lock()函数。下面,我们以lock()对获取公平锁的过程进行展开。1. lock()lock()在ReentrantLock.java的FairSync类中实现,它的源码如下:final void lock()
2016-07-01 15:31:35 4308
转载 java多线程--公平锁(二)
/*AQS(AbstractQueuedSynchronizer.java) * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group
2016-07-01 11:22:33 1143
转载 java多线程--公平锁(一)
基本概念本章,我们会讲解“线程获取公平锁”的原理;在讲解之前,需要了解几个基本概念。后面的内容,都是基于这些概念的;这些概念可能比较枯燥,但从这些概念中,能窥见“java锁”的一些架构,这对我们了解锁是有帮助的。1. AQS -- 指AbstractQueuedSynchronizer类。 AQS是java中管理“锁”的抽象类,锁的许多公共方法都是在这个类中实现。AQS是独占锁(
2016-07-01 11:17:09 1795
转载 java多线程--“升级版”生产者消费者
ReentrantLock介绍ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。ReentrantLock分为“公平锁”和“非公平锁”。它们的区别体现在获取锁的机制上是否公平。“锁”是为了保护竞争资源,防止多个线程同时操作线
2016-07-01 10:48:44 2408
转载 java多线程--“锁”总览
根据锁的添加到Java中的时间,Java中的锁,可以分为"同步锁"和"JUC包中的锁"。同步锁 即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。 同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能
2016-07-01 10:33:08 2276 1
转载 java多线程--AtomicLongFieldUpdater
AtomicLongFieldUpdater介绍AtomicLongFieldUpdater可以对指定"类的 'volatile long'类型的成员"进行原子更新。它是基于反射原理实现的。 AtomicLongFieldUpdater示例// LongTest.java的源码import java.util.concurrent.atomic.AtomicLongField
2016-07-01 10:05:41 2320
robot mongo操作手册
2018-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人