加载中
初识JVM虚拟机

JVM(Java Virtual Machine)的简单介绍 JVM虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,...

2018/10/09 11:41
18
java中的阻塞队列——BlockingQueue

BlockingQueue的简单介绍 BlockingQueue队列是一种数据结构,它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向...

2018/10/08 14:29
23
java并发编程——并发容器类介绍

并发容器的简单介绍 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以...

2018/10/08 13:46
11
java并发编程——线程不安全的类

什么是线程不安全的类? 如果一个类的对象同时被多个线程访问,如果不做特殊的同步或并发处理,很容易表现出线程不安全的现象,比如抛出异常、逻辑处理错误等,这种类我们就称为线程不安全的...

2018/10/08 13:29
12
java并发编程——线程封闭

线程封闭的概念 当访问共享数据时,通常需要使用同步。一种可以避免使用同步的方式就是不共享数据,如果仅在单线程内访问数据就不需要同步。这种技术被称为线程封闭。 1.Ad-hoc线程封闭 Ad-h...

2018/10/08 12:52
20
java并发编程——不可变对象

不可变类 不可变类:指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的8个包装类和String类都是不可变类(Interger、Long和String等)都是不可变类。所以不可变类并不...

2018/10/08 12:25
39
java并发编程——对象的发布与逸出

对象发布(Publish)和逸出(Escape) 对象发布:就是提供一个对象的引用给作用域之外的代码。比如return一个对象,或者作为参数传递到其他类的方法中。 对象逸出:一种错误的发布,当一个对...

2018/10/08 11:16
144
JDK8中的HashMap实现原理及源码分析

什么是Hash? Hash音译为“哈希”,直译为“散列”,是一种信息摘要算法,但他不是加密。散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指...

JDK
2018/09/21 14:37
32
java并发编程——同步容器

集合接口简单介绍 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。 Collection和Map是一个顶层接口,而List(数组)、Set(集合)、Queue(队列)则继承了Collection接口。...

2018/09/17 22:12
15
JUC锁框架——ReadWriteLock

ReadWriteLock简单介绍 ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的。相对于互斥锁而言,ReadWriteLoc允许更高的并发...

2018/09/17 16:02
36
JUC锁框架——Semaphore

Semaphore简单介绍 Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一...

JUC锁框架——CyclicBarrier

CyclicBarrier的简单介绍 CyclicBarrier是一个同步辅助类,它允许一组线程相互等待,直到到达某个公共屏障点(common barrier point)。通过它可以完成多个线程之间相互等待,只有当每个线程...

2018/09/17 12:15
15
JUC锁框架——CountDownLatch

CountDownLatch简单介绍 CountDownLatch是同步工具类之一,可以指定一个计数值,在并发环境下由线程进行减1操作,当计数值变为0之后,被await方法阻塞的线程将会唤醒,实现线程间的同步。 Co...

2018/09/13 14:18
14
JUC锁框架——Condition

Condition介绍 Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalA...

2018/09/12 16:35
11
java中的unSafe类

UnSafe的简单介绍 sun.misc.Unsafe,提供了一些可以直接操控内存和线程的底层操作。Unsafe被JDK广泛应用于java.nio和并发包等实现中。 因为Unsafe很不安全,所以JDK开发者增加了很多特殊限制...

2018/09/12 14:23
37
JUC锁框架——LockSupport应用以及源码分析

LockSupport用法 在没有LockSupport之前,线程的挂起和唤醒咱们都是通过Object的wait和notify/notifyAll方法实现,而Object的wait和notify/notifyAll方法只能在同步代码块里用。而LockSuppo...

2018/09/11 17:11
59
java并发编程——线程池的工作原理与源码解读

线程池的简单介绍 基于多核CPU的发展,使得多线程开发日趋流行。然而线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。 在Java用...

2018/09/11 13:53
29
java并发编程——FutureTask源码分析

FutureTask的简单示例: FutureTask的应用场景,如果在当前线程中需要执行比较耗时的操作,但又不想阻塞当前线程时,可以把这些作业交给FutureTask,另开一个线程在后台完成,当当前线程将来...

2018/09/07 15:25
288
JUC锁框架——重入锁ReentrantLock

重入锁(ReentrantLock)   ReentrantLock是一种可重入的互斥锁,并且加锁是一种显式操作,对逻辑控制的灵活性远远大于synchronized关键字。重入锁是可以完全替代synchronized。并且重入锁...

2018/09/05 13:30
15
JUC锁框架——框架概述

JUC包中的锁框架   相比同步锁(synchronized),JUC包中的锁的功能更加强大,它为锁提供了一个框架,该框架允许更灵活地使用锁,只是它的用法更难罢了。JUC锁及相关的类和接口大多都在jav...

2018/09/05 13:20
6

没有更多内容

加载失败,请刷新页面

返回顶部
顶部