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