首页 > 编程语言 > 详细

Java-多线程并发04

时间:2021-04-01 22:58:51      阅读:21      评论:0      收藏:0      [点我收藏+]

并发和并行:

并发是大时间段,并行是小时间段。

如果多个线程一起访问共享资源,至少一个线程进行修改操作,会出现线程安全问题。

 

JAVA内存模型知识:

当一个线程操作共享变量时,它首先从主内存复制共享变量到自己的工作内存中,然后在工作内存对变量进行修改,处理完后将变量的值更新到主内存中去。

技术分享图片

 

 

例如这种CPU架构

双核CPU,每个核都有自己的控制器,运算器,Cache(一级缓存)

还有一个共享的二级缓存。

在线程修改数据,会先往cache中进行查找是否有相同的数据,如果有的话就直接用,两次都没有命中就写入内存,然后更新到缓存中去。

 

 

 

 

共享变量内存不可见问题:

线程A写数据到主内存,加载到缓存中。线程B修改缓存中的A修改过的值。并同步更新到缓存和内存中。当线程A再次修改值的时候,看不到线程B修改过的值。

 

Synchronized

 

Java-多线程并发04

原文:https://www.cnblogs.com/dwj-ngu/p/14608175.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!