标签: 并发编程

5 篇文章

《Java并发编程的艺术》学习笔记(四) – Volatile 全解读
Volatile 全解读 Volatile 的定义 在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,…
《Java并发编程的艺术》学习笔记(三) – Java内存模型 – JMM
Java内存模型 - JMM Java内存模型技术 Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。 在Java中,所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享(“共享变量”这个术语代指实例域,静态域和数组元素)。局部变量(Local Variables),方法定义参数(Java语言规范称之为Formal Method P…
《Java并发编程的艺术》学习笔记(二) – synchronized 全解读
synchronized 全解读 Synchronized的特性 有序性 读读、写写、写读、读写 都是互斥的,只有一条线程拿到当前的锁,当前锁不释放,其他线程只能处于BLOCK状态,等待锁的释放,然后加入下一步的竞争 可见性 完全排他 原子性 本质上是线程互斥保证的原子性 可重入性 Synchronized锁升级 - Mark Word(32bit) Synchronized锁升级 - 偏向锁 至…
《Java并发编程的艺术》学习笔记(一) – 并发编程初探
并发编程初探 Java天生的多线程 一个main函数就是一个JVM进程,在IDEA中可以看到共有6条线程 查看线程信息:jps(拿到线程的tid) + jstack(查看线程日志) prio是进程中的优先级,os_prio是操作系统给线程定义的优先级,prio前加上deamo则为守护线程 [6] Monitor Ctrl-Break (跟JVM 关系不大,他是 IDEA 通过反射的方式,开启一个随…
并发编程学习笔记
Java 创建线程的三种方式 先看一看在Thread类源码中的注释是怎么写的 There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of cla…