logo头像
书院的十三先生

Java并发编程入门(八)线程生命周期

一、线程生命周期一线程生命周期如下:1.线程创建后状态为NEW2.线程启动后状态从NEW变为RUNNABLE3.线程调用同步代码块未获得同步锁时状态为BLOCK,如果获取到锁则状态为RUNNABLE4.线程运行结束后状态为TERMIN...

Java并发编程(五)创建线程方式概览

以下简述创建线程的几种方式,不深入展开,了解则可。 一、实现Runnable接口1.业务类实现Runnable接口2.Thread类注入业务类并启动代码如下:123456789101112131415public class Ru...

Java并发编程(四)有序性

一、指令重排在计算机执行指令的顺序在经过程序编译器编译之后形成的指令序列,一般而言,这个指令序列是会输出确定的结果;以确保每一次的执行都有确定的结果。但是,一般情况下,CPU和编译器为了提升程序执行的效率,会按照一定的规则允许进行指令...

Java并发编程(三)可见性

一、可见性多核主机上每个CPU都有自己的缓存,在操作内存变量时需要先从内存加载到CPU缓存,操作完成后再从CPU缓存更新到内存,如果多个线程同时在不同的CPU上操作,那么看到的数据就有可能不一样。如图:T1两个线程都从内存读取到变量V...

Java并发编程(二)原子性

一、一个小测验并发情况下,下面两个类是否线程安全?12345678910111213141516171819202122232425262728public class Counter { private int co...