1.进程是资源分配的基本单位。线程是运行的基本单位,是调度的基本单位。
2.线程越多效率就越高?不是 线程切换消耗资源 线程切换是个很重的操作。
3.hotspot模型 -->1:1 jvm起一个线程对应操作系统起一个线程。锁的争抢,资源同步全都扔给了操作系统
。。。
Volatile :1.保持线程可见性(一个线程修改,另一个线程立马可见) 2.禁止重排序
1.保持线程可见性 public class T01_ThreadVisibility { private static volatile boolean running = true;//running值放在内存中 public static void main(String[] args) throws InterruptedException { new Thread(()->{//第一个线程把running读进去,缓存里。 while (running){ //do sth } System.out.println("end"); },"server").start(); Thread.sleep(1000); running = false;//另外一个线程读到缓存里,改为false,写回主存。但是上面那个线程只读它本地的缓存 } }