栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的多线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的多线程

volatie

1. 保证线程间变量的可见性

当变量在线程a中被修改后,其它线程工作内存中该变量的值可以立即得知改变(使得变量的修改被安全地同步到主内存中,同时使得其他线程的工作内存中对该变量的缓存失效;这样的话,其它线程必须重新去主内存中获取变量的最新值,即表现为对其它线程立即可见)

2. 禁止指令重排序

JVM指令重排序在单线程情况下不会出现问题(线程内表现串行的语义)。volatile关键字修饰的变量,生成字节码后会在变量前后生成内存屏障,指令重排时,不能把内存屏障后面的代码排到前面执行

3. 不能保证原子性

线程a读取了i=0的值,正在执行+1操作,稍后会回写到主内存;线程b已完成读取操作(不会再去主内存中取值),也在执行+1操作,等线程b执行完并回写到主内存后,i的值仍然是1。【原子操作需使用Atomic类】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号