摘要: 1. 多线程控制类 为了保证多线程的三个特性,Java引入了很多线程控制机制,下面介绍其中常用的几种: l ThreadLocal l 原子类 l Lock类 l Volatile关键字 1.1. ThreadLocal 1.1.1. 作用 ThreadLocal提供线程局部变量,即为使用相同变量的 阅读全文
posted @ 2019-11-21 22:56 别动我的猫 阅读(1036) 评论(0) 推荐(0) 编辑
摘要: 1. Java内存模型 Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 1.1. Java程序执行流程回顾 如图所示 首先J 阅读全文
posted @ 2019-11-21 10:08 别动我的猫 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 1.1. 为什么要线程通信 多个线程并发执行时,在默认情况下CPU是随机切换线程的,有时我们希望CPU按我们的规律执行线程,此时就需要线程之间协调通信。 1.2. 线程通讯方式 线程间通信常用方式如下: l 休眠唤醒方式: Object的wait、notify、notifyAll Condition 阅读全文
posted @ 2019-11-21 10:02 别动我的猫 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 1.1. 什么是死锁 多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力。然而,并发执行也带来了新的问题--死锁。 所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 1.2. 死锁产生的必要条件 以下这四个条件是死锁的必要条件,只要系统发 阅读全文
posted @ 2019-11-21 09:26 别动我的猫 阅读(710) 评论(0) 推荐(0) 编辑