028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

java并发编程的基础

这篇文章主要介绍“java并发编程的基础”,在日常操作中,相信很多人在java并发编程的基础问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java并发编程的基础”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、漳浦网站维护、网站推广。

CPU多级缓存

为什么需要CPU缓存?

原因是,CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源。所以cache的出现,是为了缓解CPU和内存之间速度的不匹配问题。

CPU缓存有什么意义?

CPU多级缓存-缓存一致性(MESI)

用于保证多个CPU cache之间缓存共享数据的一致

CPU多级缓存-乱序执行优化

处理器为了提高执行速度而做出的违背代码原有顺序的优化。在单核情况下没有问题,但是在多核环境下会出现问题。

JAVA内存模型(Java Memory Model,JMM)

这是一种规范,规范了Java虚拟机与计算机内存是如何协同工作的,规定了一个线程如何以及何时可以看到其他线程修改共享变量的值并且如何同步访问共享变量。

java并发编程的基础

如上图所示,java内存模型要求,调用栈和本地变量存放在线程栈上,如图中Thread Stack,对象存放在堆中(Heap)。本地变量Local variable2是一个指向对象的引用,Local variable存放在线程栈上,但对象存放在堆上。存放在堆上的对象可以被所持有对这个对象引用的线程访问,并且可以访问这个对象的成员变量,而当两个线程同时访问object3上的同一个方法时,都会访问方法中的成员变量,那么每一个线程会拥有这个对象成员变量的私有拷贝。

java并发编程的基础

线程之间的通信必须经过主内存,例如线程A想要与线程B进行通信,线程A需要将共享变量的副本刷新到主内存中,然后线程B读取主内存的线程A更新过的共享变量。因此会出现同步问题。

同步往往有8种操作:

同步规则:

java并发编程的基础 

并发的优势与风险

优势:

风险:

到此,关于“java并发编程的基础”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


新闻标题:java并发编程的基础
当前链接:http://www.tsicrk.com/article/johjds.html

其他资讯

让你的专属顾问为你服务

4.7271s