java多线程
孤鸿踏雪
一介书生,三尺微命。
展开
-
Java 偏向锁终于被废弃掉了(转载)
Java 偏向锁终于被废弃掉了!(转载) 任意门: https://mp.weixin.qq.com/s/k31GWzGRj1xCt2swRb3X9A翻译 2022-01-06 10:51:16 · 302 阅读 · 0 评论 -
两个线程依赖另外一个线程的数据实现笔记
ThreadA、ThreadB、ThreadC,ThreadA 用于初始化数据 num, 只有当 num 初始化完成之后再让 ThreadB 和 ThreadC 获取到初始化后的变量 num。 分析过程如下: 考虑到多线程的不确定性,因此我们不能确保 ThreadA 就一定先于 ThreadB 和 ThreadC 前执行,就算 ThreadA 先执行了,我们也无法保证 ThreadA 什么时候才能将变量 num 给初始化完成。因此我们必须让 ThreadB 和 ThreadC 去等待 T..原创 2020-05-10 16:14:00 · 585 阅读 · 0 评论 -
java 线程变量值得变化笔记
在java 内存模型中每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值的信息。当线程访问某一个对象值得时候,首先通过对象的引用找到在堆内存的变量的值(read),然后把这在队内变量的具体值load到线程本地内存,建立一个变量副本,之后线程就不在和堆内存变量的值有任何关系,而是直接修改副本变量的值,在修改完之后的某一个时刻(线程退出之前),自动把线程变量副本的值回写到对象在堆内存该变量中,这样堆内存中这个对象的值就发生变化了。 public class Counter { priva原创 2020-05-10 15:45:43 · 238 阅读 · 0 评论 -
Java线程状态转换
《深入理解JAVA虚拟机》 Java语言定义了如下几种线程状态,在任意一个时间点,一个线程只有有且只有一个其中的一个状态。 1.新建(New):新建后尚未启动的线程处于这种状态; 2.运行(Runnable):Runnable 包括了操作系统线程状态的Running和Ready,也就是处于此状态的线程有可能正在运行,也有可能 正在等待CPU为它分配执行时间。 3.无限期等待(Wai...原创 2020-05-05 12:46:17 · 132 阅读 · 0 评论 -
Thread.currentThread 和this 区别
笔者最近在看《java多线程编程核心技术》一书时,看到一个例子说明如何区分Thread.currentThread 和this ,特此分享。 例子如下: package test; public class CountOperate extends Thread { public CountOperate(){ System.out.println("CountOp...原创 2018-10-21 16:34:19 · 388 阅读 · 1 评论