![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java进阶知识
文章平均质量分 83
MYjingyx
这个作者很懒,什么都没留下…
展开
-
2.如何解决原子性问题
假设有两个线程分别是线程A和线程B,线程A执行在CPU-01上,线程B执行在CPU-02上,此时,禁用CPU中断,只能保证在每个CPU上执行的线程是连续的,并不能保证同一时刻只有一个线程执行,如果线程A和线程B同时写long型变量的高32位的话,那么,就有可能出现诡异的Bug问题,也就是说,明明已经将变量成功写入内存了,但是重新读取出来的数据却不是自己写入的!在这个线程中,对于long型变量的两次写操作,要么都被执行,要么都没有被执行,两次写操作具有原子性,不会出现写入的数据和读取的数据不一致的情况。原创 2023-10-10 16:31:34 · 62 阅读 · 1 评论 -
1.Java内存模型如何解决可见性和有序性问题
已经知道,导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但是这么做程序对的性能就会受到很大的影响。Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法,程序员可以通过volatile、synchronized和final关键字,以及六项Happens-Before规则来解决可见性和有序性问题。原创 2023-10-10 16:30:52 · 36 阅读 · 1 评论 -
JAVA并发编程
近些年,我们的CPU、内存、I/O设备都在不断迭代,计算机技术进步迅速,但是由于CPU的发展速度远快于内存和I/O设备,导致了CPU常常处于等待状态,不能充分利用计算机的性能。而并发编程正是一种解决这个问题的方法,它能够让计算机多个任务同时执行,充分利用CPU的计算资源,提高程序的执行效率和响应速度。并且在处理大量并发请求的业务方面也具有重要的作用,能够提高系统的吞吐量和性能。学习并发编程还可以帮助我们更好地理解多线程编程的本质和原理,提高我们的编程技能和代码质量。原创 2023-10-10 16:29:53 · 31 阅读 · 1 评论 -
JAVA虚拟机(JVM)
JVM是Java Virtual Machine的缩写,即Java虚拟机。Java虚拟机只要有两方面作用:1.Java语言是平台无关的语言,即一次编译就可以在不同的平台上运行。这主要是靠Java虚拟机的配合。在不同系统中需要安装对应系统的Java虚拟机,而编译后的Java代码是运行在Java虚拟机上的。所以,Java虚拟机帮助Java程序隔离了系统的差异。原创 2023-10-10 16:26:54 · 244 阅读 · 1 评论