摘要:
1.JDK源码注释 通过前面章节的学习,我们都知道Lock接口与synchronized关键字都是Java提供的用于对对象进行加锁和解锁的技术,那这两种方式有什么区别和联系呢?先看JDK源码中的注释: /** * {@code Lock} implementations provide more e 阅读全文
摘要:
本章主要对synchronized关键字的两种用法进行学习。 1.synchronized简述 引用百度百科的一段解释: synchronized 关键字,代表这个方法(或代码块)加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或 阅读全文
摘要:
volatile关键字在之前的章节中多次提及: 《Java并发11:Java内存模型、指令重排、happens-before原则》:volatile就是用Lock前缀方式的内存屏障伪类型来实现的。《Java并发14:并发三特性-可见性定义、可见性问题与可见性保证技术》:volatile关键字通过标记 阅读全文
摘要:
在Java并发编程中,如果要保证代码的安全性,则必须保证代码的原子性、可见性和有序性。 在 Java并发12:并发三特性-原子性、可见性和有序性概述及问题示例中,对并发中的三个特性(原子性、可见性和有序性)进行了初步学习。本章主要就Java中保障有序性的技术进行更加全面的学习。 1.整体回顾 有序性 阅读全文
摘要:
在Java并发编程中,如果要保证代码的安全性,则必须保证代码的原子性、可见性和有序性。 在 Java并发12:并发三特性-原子性、可见性和有序性概述及问题示例中,对并发中的三个特性(原子性、可见性和有序性)进行了初步学习。 本章主要就Java中保障可见性的技术进行更加全面的学习。 1.整体回顾 可见 阅读全文
摘要:
在Java并发编程中,如果要保证代码的安全性,则必须保证代码的原子性、可见性和有序性。 在 Java并发12:并发三特性-原子性、可见性和有序性概述及问题示例中,对并发中的三个特性(原子性、可见性和有序性)进行了初步学习。 本章主要就Java中保障原子性的技术进行更加全面的学习。 1.整体回顾 原子 阅读全文
摘要:
本章主要学习Java并发中的三个特性:原子性、可见性和有序性。 在Java并发编程中,如果要保证代码的安全性,则必须保证代码的原子性、可见性和有序性。 本章的很多概念可以参考:Java并发11:Java内存模型、指令重排、happens-before原则 1.原子性(Atomicity) 1.1.原 阅读全文
摘要:
本章主要对Java并发中非常重要的概念Java内存模型、指令重排和happens-before原则进行学习。 1.内存模型 如果想要设计表现良好的并发程序,理解Java内存模型是非常重要的。 Java线程之间的通信由Java内存模型(Java Memory Model,简称JMM)控制。JMM决定一 阅读全文
摘要:
本章主要对Java中线程的状态转换进行学习。 1.前言 在之前的章节中,已经学习了java的各种方法,涉及到状态转换的方法有: Thread.sleep(long):强制线程睡眠一段时间。thread.start():启动一个线程。thread.join():在当前线程中加入指定线程,使得这个指定线 阅读全文
摘要:
本章主要对Java中Thread类的基本方法进行学习。 1.序言 Thread类作为线程的基类,提供了一系列方法,主要有: Thread.sleep(long):强制线程睡眠一段时间。 Thread.activeCount():获取当前程序中存活的线程数。 thread.start():启动一个线程 阅读全文