多线程基础入门
多线程基础入门
glamour2015
这个作者很懒,什么都没留下…
展开
-
线程基础知识
进程与线程进程:是系统进行分配和管理资源的基本单位线程:进程的一个执行单元,是进程内调度的实体、是CPU调度和分派的基本单位,也被称为轻量级进程,线程是程序执行的最小单位。每个线程各自拥有各自的计数器、栈和局部变量等属性,并且能够访问共享的内存变量。线程的状态及其相互转换初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):处于可运行状态的线程正...原创 2020-03-14 18:44:50 · 101 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不同的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图从上面的结构图,我们已经窥见ThreadLocal的核心机制:1.每个Thread线程...转载 2020-03-13 08:02:40 · 78 阅读 · 0 评论 -
Java并发——Synchronized关键字和锁升级
Synchronized使用场景Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchronized关键字就是用于代码同步。什么情况下会数据不安全呢,要满足两个条件:一是数据共享(临界资源),二是多线程同时访问并改变该数据。Synchronized锁的3种使用形式:Synchronized修饰普通同步方法:锁对象当前实例对象;Synchr...原创 2020-02-08 11:11:04 · 218 阅读 · 0 评论 -
JAVA JMM-volatile关键字的理解
volatile修饰的共享变量,就会具有以下两个特性:1.保证内存可见性,也就是一个线程对共享变量修改,对于另一个线程立即可见。主存:线程对共享变量的修改,会立即刷入主存缓存:使其他缓存中该共享变量的引用失效,重新从主存中加载2.禁止指令重排序。防止JVM对非原子操作进行指令重排导致非预期结果JMM-java内存模型-共享内存模型JMM定义了线程和主内存之间的抽象关系,线程之间的共享...转载 2020-02-08 10:04:41 · 119 阅读 · 0 评论