一 前言 上一篇分析AQS的内部结构,其中有介绍AQS是什么,以及它的内部结构的组成,那么今天就来分析下前面说的内部结构在AQS中的具体作用(主要在具体实现中体现)。 二 AQS的接口和简单示例 上篇有说到AQS是抽象类,而它的设计是基于模板方法模式的,也就是说:使用者需要继承同步器并重写指定的方法 ...
分类:
编程语言 时间:
2018-09-23 13:31:36
阅读次数:
144
一、关键字: thread(线程)、thread-safe(线程安全)、intercurrent(并发的) synchronized(同步的)、asynchronized(异步的)、 volatile(易变的)、atomic(原子的)、share(共享) 二、总结背景: 一次读写共享文件编写,嚯,好 ...
分类:
编程语言 时间:
2018-09-22 18:18:01
阅读次数:
195
设计模式 单例模式 在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式。适用的场景在于:对于定义的一个类,在整个应用程序执行期间只有唯一的一个实例对象。 主要实现方式包括饿汉式、懒汉式;懒汉式需要注意线程安全问题。 核心是理解synchronize和volatile关键字。 ...
分类:
其他好文 时间:
2018-09-22 00:58:54
阅读次数:
204
** 分布式 1、分布式架构及CAP理论 2、zookeeper 3、RPC框架(如Dubbo、Spring Cloud) 4、消息队列(Kafka),各种消息队列的优劣 一、Java虚拟机 1、内存架构 2、类加载机制(特别的,双亲委派模式及其反例) 3、主存及线程工作内存(volatile的两方 ...
分类:
其他好文 时间:
2018-09-21 19:45:21
阅读次数:
205
在上一章我们从宏观上介绍了ThreadPoolExecutor,本文将深入解析一下线程池的具体实现原理 原理解析 线程池状态 在ThreadPoolExecutor中定义了一个volatile变量,另外定义了几个static final变量表示线程池的各个状态: runState表示当前线程池的状态 ...
分类:
编程语言 时间:
2018-09-21 15:17:48
阅读次数:
202
Java代码在编译后 编程Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 volatiled的应用 volatile是轻量级的synchronized,它在多处理器开发中保证了共享变 ...
分类:
其他好文 时间:
2018-09-21 00:35:08
阅读次数:
204
单例模式:是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保 ...
分类:
其他好文 时间:
2018-09-20 13:48:17
阅读次数:
166
关键字volatile的主要作用是使变量在多个线程间可见 一、volatile关键字与死循环 如果不是在多继承的情况下,使用Thread类和实现Runnnable接口在取得程序运行的结果上并没有什么太大的区别。如果一旦出现“多继承”的情况下,则用实现Runnable接口的方式来处理多线程的问题就是很 ...
分类:
其他好文 时间:
2018-09-19 23:26:27
阅读次数:
206
(1)Volatile原理 (一)计算机内存模型 计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行 ...
分类:
其他好文 时间:
2018-09-19 11:32:43
阅读次数:
127
单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点! 1.懒汉式单例模式: 这样方式实现线程安全地创建实例,而又不会对性能造成太大影响。它只是第一次创建实例的时候同步,以后就不需要同步了。 由于volatile关键字屏蔽了虚拟机中一些必要的代码优化,所以运行效率并不是很高,因此建议 ...
分类:
编程语言 时间:
2018-09-17 17:49:08
阅读次数:
140