Java教程

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

本文主要是介绍学习马士兵吊打面试官硬核技能总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

这篇关于学习马士兵吊打面试官硬核技能总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!