电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java Volatile關(guān)鍵字同步機制詳解

瀏覽:5日期:2022-09-02 10:49:21

Volatile關(guān)鍵字--最輕量級的同步機制1.保證了不同線程對這個變量進(jìn)行操作時的可見性,即一個線程修改了某個變量的值,這新值對其他線程來說是立即可見的。(實現(xiàn)可見性)

例如:如果一個oldvalue -->修改為newvalue ,這時的newvalue可以被其他的線程看到。

2.volatile不是線程安全的,只能保證對單次讀/寫的原子性。i++ 這種操作不能保證原子性。(不能保證原子性)最常使用場景:一寫多讀代碼演示Volatile的可見性

public class VolatileCase { //未加volatile關(guān)鍵字 private static boolean ready = false; private static int number = 0; private static class ThreadInfo extends Thread{ @Override public void run() { System.out.println('Thread start'); while (!ready); System.out.println('number:'+number+'----ready:'+ready+'Thread end'); } } public static void main(String[] args) throws InterruptedException { new ThreadInfo().start(); Thread.sleep(100); ready = true; number = 123; Thread.sleep(100); System.out.println('main end'); }}

未加Volatile關(guān)鍵字運行結(jié)果:

Java Volatile關(guān)鍵字同步機制詳解

加上Volatile關(guān)鍵字后:

//加volatile關(guān)鍵字 private volatile static boolean ready = false;

加上Volatile關(guān)鍵字運行結(jié)果:

Java Volatile關(guān)鍵字同步機制詳解

綜上:

證實Volatile的可見性:當(dāng)一個線程修改一個Volatile修飾的變量時,其他線程可以實時看到。

代碼演示Volatile的非原子性:

public class VolatileCase { //Volatile關(guān)鍵字 private volatile int count = 0; public int getCount() { return count; } public void setCount(int count) { this.count = count; } public void inCount(){ count++; } private static class ThreadInfo extends Thread{ private VolatileCase vc; public ThreadInfo(VolatileCase vc){ this.vc = vc; } @Override public void run() { for (int i = 0; i < 10000; i++) {vc.inCount(); } } } public static void main(String[] args) throws InterruptedException { VolatileCase vc = new VolatileCase(); ThreadInfo threadInfo1 = new ThreadInfo(vc); ThreadInfo threadInfo2 = new ThreadInfo(vc); threadInfo1.start(); threadInfo2.start(); Thread.sleep(100); System.out.println('main end:'+vc.getCount()); }}

第一次運行結(jié)果:

Java Volatile關(guān)鍵字同步機制詳解

第二次運行結(jié)果:

Java Volatile關(guān)鍵字同步機制詳解

正確的運行結(jié)果應(yīng)該是20000的,但是每次結(jié)果都少于20000,證實Volatile的非原子性和非線程安全。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 天坛家具官网| 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 至顶网| 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 干式磁选机_湿式磁选机_粉体除铁器-潍坊国铭矿山设备有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 民用音响-拉杆音响-家用音响-ktv专用音响-万昌科技 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 纯化水设备-EDI-制药-实验室-二级反渗透-高纯水|超纯水设备 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 |