怎么深入理解Java多线程与并发框中的顺序一致性模型-创新互联

怎么深入理解Java多线程与并发框中的顺序一致性模型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司主要从事网站设计制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务建宁,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

一、竞态条件(Race Condition)

计算的正确性取决于 多个线程 执行的 时序 时,就会发生 竞态条件。

二、顺序一致性模型

对内存可见性的保证 对多线程并发时的串行化保证

顺序一致性模型的两大特征:

  • 一个线程中的所有操作必须按照程序的顺序来执行。

  • (不管程序是否同步)所有线程都只能看到一个单一的操作执行顺序。在顺序一致性内存模型中,每个操作都必须原子执行且立刻对所有线程可见。

在概念上,顺序一致性模型有一个单一的全局内存,这个内存通过一个左右摆动的开关可以连接到任意一个线程。同时,每一个线程必须按程序的顺序来执行内存读/写操作。从上图我们可以看出,在任意时间点最多只能有一个线程可以连接到内存。当多个线程并发执行时,图中的开关装置能把所有线程的所有内存读/写操作串行化。

为了更好的理解,下面我们通过两个示意图来对顺序一致性模型的特性做进一步的说明:

假设有两个线程A和B并发执行。其中A线程有三个操作,它们在程序中的顺序是:A1->A2->A3。B线程也有三个操作,它们在程序中的顺序是:B1->B2->B3。 假设这两个线程使用监视器来正确同步:A线程的三个操作执行后释放监视器,随后B线程获取同一个监视器。那么程序在顺序一致性模型中的执行效果将如下图所示: 多线程并发执行多操作的模型

看完上述内容,你们掌握怎么深入理解Java多线程与并发框中的顺序一致性模型的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!


分享文章:怎么深入理解Java多线程与并发框中的顺序一致性模型-创新互联
文章地址:http://azwzsj.com/article/cooiii.html