How did say goodbye?

该如何跟你不想失去的人说再见?

新生

并发底层实现原理

Java代码编译后形成字节码文件,字节码被类加载器加载到JVM中,JVM将字节码转换为汇编指令在CPU上执行,整个过程并发机制的实现全部依赖于JVM和CPU的指令。 volatile JMM存在一个主线程,每个线程有自己的私有的本地内存,本地内存中保存了一些共享变量的拷贝。 为了保证当一个线程修改了共享变量是,另一个线程可以读取到这个修改后的值(即保证内存可见性),引入了volatile...

单例模式

AOP

Java内存模型

在并发编程中,需要注意两个关键问题: 线程间如何通信? 即: 线程间以何种机制来交换信息. 线程间如何同步? 即: 线程间以何种机制来控制不同线程间操作发生的相对顺序. 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 两种内存模型比较 模型 如何通信 如何同步 共享内存 线程之间共享内存的公共状态,通过写-读内存中的公共状态进行隐式的通信。 同步是显式...

线程同步

每一个线程都有其自己的私有上下文,当多个线程需要共同合作完成某项任务时,两者必定是会产生通信,而线程间的通信完全围绕它们共同持有的资源进行的。 锁与同步

线程组及线程优先级

线程组数据结构 线程组是⼀个树状的结构,每个线程组下面可以有多个线程或者线程组。线程组可以起到统⼀控制线程的优先级和检查线程的权限的作用。 1234567891011121314public class ThreadGroup implements Thread.UncaughtExceptionHandler { private final ThreadGroup p...

线程实现及创建方式

线程实现及创建方式

进程与线程

多线程始终如一

Java常用关键字

final 关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点: final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法; final修饰的方法不能被重写; final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指...