加载中
初识JVM虚拟机

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

2018/10/09 11:41
18
java内存模型

内存模型的相关概念   计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这...

2018/08/07 18:30
8
JUC锁框架——CountDownLatch

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

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

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

2018/09/17 16:02
36
java并发编程——线程封闭

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

2018/10/08 12:52
20
深入剖析volatile关键字

volatile的原理和实现机制 如果一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了...

2018/08/13 16:02
30
JUC锁框架——Semaphore

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

Java中的无锁编程

无锁的介绍 无锁的概念可参考前面的《高并发的基本概念》的介绍。无锁的特点 无障碍的; 保证有一个线程胜出; 如果临界区的每个线程在每次竞争中都无法胜出那么该线程即将被饿死。 Java当中...

2018/08/09 14:26
21
java并发编程——FutureTask源码分析

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

2018/09/07 15:25
288
java并发编程——对象的发布与逸出

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

2018/10/08 11:16
144
java中的unSafe类

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

2018/09/12 14:23
37
java并发编程——线程不安全的类

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

2018/10/08 13:29
12
java中的线程

基本概念 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程,我们针对某个线程设置相...

2018/08/06 15:58
2
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

2018/08/22 06:09
39
java并发编程——同步容器

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

2018/09/17 22:12
15
JUC锁框架——LockSupport应用以及源码分析

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

2018/09/11 17:11
59
JUC锁框架——Condition

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

2018/09/12 16:35
11
JUC锁框架——重入锁ReentrantLock

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

2018/09/05 13:30
15
java并发编程——线程池的工作原理与源码解读

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

2018/09/11 13:53
29
Java中的ThreadGroup线程组

ThreadGroup概述 在java中为了方便线程管理出现了线程组ThreadGroup的概念,每个ThreadGroup可以同时包含多个子线程和多个子线程组,在一个进程中线程组是以树形的方式存在,通常情况下根线程...

2018/09/03 17:16
337

没有更多内容

加载失败,请刷新页面

返回顶部
顶部