学习马士兵吊打面试官硬核技能总结

01线程的本质(操作系统与CPU是如何执行线程的)

1.进程是资源分配的基本单位。线程是运行的基本单位,是调度的基本单位。

2.线程越多效率就越高?不是 线程切换消耗资源 线程切换是个很重的操作。

3.hotspot模型 -->1:1 jvm起一个线程对应操作系统起一个线程。锁的争抢,资源同步全都扔给了操作系统

10深入分析volatile的实现原理

。。。

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,写回主存。但是上面那个线程只读它本地的缓存
    }
}  

上一篇:Spring JdbcTemplate操作小结


下一篇:针对VS 调试项目时出现Error running qmake问题解决方法