![240](https://cdn2.jianshu.io/assets/default_avatar/12-aeeea4bedf10f2a12c0d50d626951489.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
一、重排序 先看例子: 可以发现,其实执行的顺序不同,结果会有很大差异 那么什么是重排序: 在线程1内部的两行代码的实际执行顺序和代码在Java...
概念辨析: 一、JVM内存结构:和Java虚拟机的运行时区域有关 上图中左侧 方法区(Method Area)和堆(Heap) 是线程共享的右侧...
一、什么是线程安全: 《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义...
1.子线程中处理异常的弊端 多线程抛出的异常,容易在主线程大量的日志打印中丢失,给日志排查带来了一定的困难。如下面的例子: 运行结果: Exce...
线程Id 线程id从1开始自增,不可更改。发现,JVM运行起来后,我们自己创建的线程id早已不是2。 运行结果: 主线程的ID:1子线程的ID:...
一、图解方法 二、sleep方法详解: 1.sleep方法特点 以下代码运行了两个Thread,等第一个Thread执行完,第二个Thread才...
一、图解方法 二、wait,notify,notifyAll方法详解 1. 基本用法 有时,我们想让一个线程或多个线程先去休息一下,等到我们后续...
一、6种生命周期介绍 New:已创建未启动的线程。 new Thread,还没执行start方法,这时候它已经做了一些准备工作。Runnable...
一、如何正确的停止线程 线程的停止有两种情况,一种是程序运行完毕,线程自然停止;而另一种是用户主动取消。Java语言的设计,本身并没有一种机制来...