关于volatile和i++的疑问

Java > Java EE [问题点数:70分,无满意结帖,结帖人benluobobo]
等级
本版专家分:846
勋章
Blank
红花 2014年4月 其他数据库开发大版内专家分月排行榜第一
Blank
黄花 2016年1月 其他数据库开发大版内专家分月排行榜第二
2014年12月 其他数据库开发大版内专家分月排行榜第二
2014年11月 其他数据库开发大版内专家分月排行榜第二
2014年5月 其他数据库开发大版内专家分月排行榜第二
Blank
蓝花 2014年3月 其他数据库开发大版内专家分月排行榜第三
结帖率 55.88%
等级
本版专家分:846
勋章
Blank
红花 2014年4月 其他数据库开发大版内专家分月排行榜第一
Blank
黄花 2016年1月 其他数据库开发大版内专家分月排行榜第二
2014年12月 其他数据库开发大版内专家分月排行榜第二
2014年11月 其他数据库开发大版内专家分月排行榜第二
2014年5月 其他数据库开发大版内专家分月排行榜第二
Blank
蓝花 2014年3月 其他数据库开发大版内专家分月排行榜第三
等级
本版专家分:846
勋章
Blank
红花 2014年4月 其他数据库开发大版内专家分月排行榜第一
Blank
黄花 2016年1月 其他数据库开发大版内专家分月排行榜第二
2014年12月 其他数据库开发大版内专家分月排行榜第二
2014年11月 其他数据库开发大版内专家分月排行榜第二
2014年5月 其他数据库开发大版内专家分月排行榜第二
Blank
蓝花 2014年3月 其他数据库开发大版内专家分月排行榜第三
等级
本版专家分:30
等级
本版专家分:30
等级
本版专家分:0
benluobo

等级:

Blank
红花 2014年4月 其他数据库开发大版内专家分月排行榜第一
Blank
黄花 2016年1月 其他数据库开发大版内专家分月排行榜第二
2014年12月 其他数据库开发大版内专家分月排行榜第二
2014年11月 其他数据库开发大版内专家分月排行榜第二
2014年5月 其他数据库开发大版内专家分月排行榜第二
Blank
蓝花 2014年3月 其他数据库开发大版内专家分月排行榜第三
关于volatile对变量自增不保证原子性的原因所产生的疑问

在多线程情况下,有i变量: ...是因为volatile不能保证原子性,而i++其实有三步操作,读,修改,写,并不是原子操作,所以volatile当然不能保证结果的准确性,解释完毕! 其实博主我觉得这种解释相当的流氓 让我想起

volatilei++情况下失效

volatile关键字修饰的变量在执行自增、自减操作时无效!

volatile i++

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的...

为什么volatile++不是原子性的?

在讨论原子性操作时,我们经常会听到一个说法:任意单个volatile变量的读写具有原子性,但是volatile++这种操作除外。 所以问题就是:为什么volatile++不是原子性的? 答案 因为它实际上是三个操作组成的一个...

i++ 是否为原子操作 Java中的volatile关键字

研究ThreadPoolExecutor的时候,发现其中大量使用了volatile变量。  不知为何,因此做了一番查找,研究:  其中借鉴了很多网上资料。  在了解volatile变量作用前,先需要明白一些概念:  什么是原子...

Java并发编程:volatile关键字解析。以及volatile和synchronize的区别

Java并发编程:volatile关键字解析  volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile...

【并发编程】--- volatile底层原理 + happens-before规则

文章目录1 volatile如何保证可见性2 volatile为什么不能保证原子性问题3 volatile可以保证有序性的原因3.1 单线程禁止重排序的规则 as-if-serial3.1 多线程禁止重排序的规则 happens-before 源码地址:...

【Java并发编程】volatile关键字解析

比如volatile int i=i+1,这就不是线程安全的,他不是原子性的,这个语句分为3个命令,先获取i的值,然后加1运算,最后进行赋值,那假如i初始值为0,线程A在执行这条语句的时候,在获取i值从主存加载到工作内...

i++ 是线程安全的吗?

先来看下面的示例来验证下 i++ 到底是不是线程安全的。 1000个线程,每个线程对共享变量 count 进行 1000 次 ++ 操作。 上面的例子我们期望的结果应该是 1000000,但运行 N 遍,你会发现总是不为 1000000,至少你...

java中关于volatile的理解疑问

作者:xyzZ链接:...因为非原子性,volatile往往不能保证线程安全 .因为非原子性,volatile往往不能保证线程安全 .因为非原子性,volatile往往不能保证线程安全 volatil...

Volatile关键字详解

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字...

关于synchronized不能锁定i++的疑问

这是我看过关于 volatile 最好的文章

点击上方“朱小厮的博客”,选择“设为星标”后台回复"加群",加入新技术volatile这个关键字可能很多朋友都听说过,或许也都用过。在 Java 5 之前,它是一个备受...

“你不了解的”CC++ volatile

1. 令人困惑的volatile volatile字面意思是“不稳定的、易失的”,不少编程语言中存在volatile关键字,也有共同之处,如“表示程序执行期间数据可能会被外部操作修改”,如被外设修改或者被其他线程修改等。这只是...

Java并发编程:JMM和volatile关键字

Java内存模型随着计算机的CPU的飞速发展,CPU的运算能力已经远远超出了从主内存(运行内存)中读取的数据的能力,为了解决这个问题,CPU厂商设计出了CPU内置高速缓存区。高速缓存区的加入使得CPU在运算的过程中直接...

volatile和Cache一致性协议之MESI

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字...

Java并发编程:volatile关键字解析

volatile保证多线程共享内存资源 首先:每个线程操作都有自己的内存空间: 一个线程更改,立即写入内存供其他线程使用(保证可见性); 一个线程更改,还未写入内存,其他线程读取内存数据操作,造成两次操作,一...

一个volatile引发的 murder case

引言

java多线程学习之volatile synchronized

java多线程学习之volatile synchronized 安卓开发对多线程的使用很少,在平时业务开发过程中用的最多的多线程就是开启一个子线程进行数据请求操作,除此之外,很少再用到多线程。但是不用不代表着不需要了解。多...

AQS系列之起始篇-volatile和unsafe理解使用

如果内容有误,麻烦留言斧正,有疑问请关注公众号私信交流共同成长! 这一篇主要讲vloatile关键字Unsafe类。 volatile 关键字 我们都知道volatile关键字,是通过内存屏障实现了两个特性: 可见性:假设两个线程A...

关于Java中volatile关键字可见性的补充说明

本文不是一篇讲解volatile的技术文,只是在学习volatile过程中遇到的问题的记录以及自己的理解,要想全面的了解volatile关键字,可以去看其他大佬的技术博客,我自己就是个菜鸟。

volatile关键字的深入理解

volatile关键字,已经是经常遇到的问题了,在一片公众号上发现了关于他的讲解,今天就大家一起分享一下。共享变量:类的成员变量、类的静态成员变量。一旦一个共享变量被volatile关键字修饰修饰之后具备以下两层...

Java并发编程之volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。

volatile详解

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字...

java中共享变量分析和volatile

Java并发一直都是开发中比较难也比较有挑战性的技术,对于很多新手来说是很容易掉进这个并发陷阱的,其中尤以共享变量最具代表性,其实关于讲这个知识点网上也不少,但是想讲讲自己对这个概念的理解。 共享变量比较...

Intellij IDEA入门到精通(一)

Intellij IDEA入门到精通主要是帮助Java学员掌握Intellij IDEA开发工具,本系列课程讲解了很多插件的使用,帮助开发人员提高工作效率。 帮助学员快速掌握Intellij IDEA,并提高工作效率

matlab神经网络30个案例分析

【目录】- MATLAB神经网络30个案例分析(开发实例系列图书) 第1章 BP神经网络的数据分类——语音特征信号分类1 本案例选取了民歌、古筝、摇滚和流行四类不同音乐,用BP神经网络实现对这四类音乐的有效分类。 第2章 BP神经网络的非线性系统建模——非线性函数拟合11 本章拟合的非线性函数为y=x21+x22。 第3章 遗传算法优化BP神经网络——非线性函数拟合21 根据遗传算法和BP神经网络理论,在MATLAB软件中编程实现基于遗传算法优化的BP神经网络非线性系统拟合算法。 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优36 对于未知的非线性函数,仅通过函数的输入输出数据难以准确寻找函数极值。这类问题可以通过神经网络结合遗传算法求解,利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数极值。 第5章 基于BP_Adaboost的强分类器设计——公司财务预警建模45 BP_Adaboost模型即把BP神经网络作为弱分类器,反复训练BP神经网络预测样本输出,通过Adaboost算法得到多个BP神经网络弱分类器组成的强分类器。 第6章 PID神经元网络解耦控制算法——多变量系统控制54 根据PID神经元网络控制器原理,在MATLAB中编程实现PID神经元网络控制多变量耦合系统。 第7章 RBF网络的回归——非线性函数回归的实现65 本例用RBF网络拟合未知函数,预先设定一个非线性函数,如式y=20+x21-10cos(2πx1)+x22-10cos(2πx2)所示,假定函数解析式不清楚的情况下,随机产生x1,x2和由这两个变量按上式得出的y。将x1,x2作为RBF网络的输入数据,将y作为RBF网络的输出数据,分别建立近似和精确RBF网络进行回归分析,并评价网络拟合效果。 第8章 GRNN的数据预测——基于广义回归神经网络的货运量预测73 根据货运量影响因素的分析,分别取国内生产总值(GDP),工业总产值,铁路运输线路长度,复线里程比重,公路运输线路长度,等级公路比重,铁路货车数量和民用载货汽车数量8项指标因素作为网络输入,以货运总量,铁路货运量和公路货运量3项指标因素作为网络输出,构建GRNN,由于训练数据较少,采取交叉验证方法训练GRNN神经网络,并用循环找出最佳的SPREAD。 第9章 离散Hopfield神经网络的联想记忆——数字识别81 根据Hopfield神经网络相关知识,设计一个具有联想记忆功能的离散型Hopfield神经网络。要求该网络可以正确地识别0~9这10个数字,当数字被一定的噪声干扰后,仍具有较好的识别效果。 第10章 离散Hopfield神经网络的分类——高校科研能力评价90 某机构对20所高校的科研能力进行了调研和评价,试根据调研结果中较为重要的11个评价指标的数据,并结合离散Hopfield神经网络的联想记忆能力,建立离散Hopfield高校科研能力评价模型。 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算100 现对于一个城市数量为10的TSP问题,要求设计一个可以对其进行组合优化的连续型Hopfield神经网络模型,利用该模型可以快速地找到最优(或近似最优)的一条路线。 第12章 SVM的数据分类预测——意大利葡萄酒种类识别112 将这178个样本的50%做为训练集,另50%做为测试集,用训练集对SVM进行训练可以得到分类模型,再用得到的模型对测试集进行类别标签预测。 第13章 SVM的参数优化——如何更好的提升分类器的性能122 本章要解决的问题就是仅仅利用训练集找到分类的最佳参数,不但能够高准确率的预测训练集而且要合理的预测测试集,使得测试集的分类准确率也维持在一个较高水平,即使得得到的SVM分类器的学习能力和推广能力保持一个平衡,避免过学习和欠学习状况发生。 第14章 SVM的回归预测分析——上证指数开盘指数预测133 对上证指数从1990.12.20-2009.08.19每日的开盘数进行回归分析。 第15章 SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测141 在这个案例里面我们将利用SVM对进行模糊信息粒化后的上证每日的开盘指数进行变化趋势和变化空间的预测。 若您对此书内容有任何疑问,可以凭在线交流卡登录中文论坛与作者交流。 第16章 自组织竞争网络在模式分类中的应用——患者癌症发病预测153 本案例中给出了一个含有60个个体基因表达水平的样本。每个样本中测量了114个基因特征,其中前20个样本是癌症病人的基因表达水平的样本(其中还可能有子类), 中间的20个样本是正常人的基因表达信息样本, 余下的20个样本是待检测的样本(未知它们是否正常)。以下将设法找出癌症与正常样本在基因表达水平上的区别,建立竞争网络模型去预测待检测样本是癌症还是正常样本。 第17章SOM神经网络的数据分类——柴油机故障诊断159 本案例中给出了一个含有8个故障样本的数据集。每个故障样本中有8个特征,分别是前面提及过的:最大压力(P1)、次最大压力(P2)、波形幅度(P3)、上升沿宽度(P4)、波形宽度(P5)、最大余波的宽度(P6)、波形的面积(P7)、起喷压力(P8),使用SOM网络进行故障诊断。 第18章Elman神经网络的数据预测——电力负荷预测模型研究170 根据负荷的历史数据,选定反馈神经网络的输入、输出节点,来反映电力系统负荷运行的内在规律,从而达到预测未来时段负荷的目的。 第19章 概率神经网络的分类预测——基于PNN的变压器故障诊断176 本案例在对油中溶解气体分析法进行深入分析后,以改良三比值法为基础,建立基于概率神经网络的故障诊断模型。 第20章 神经网络变量筛选——基于BP的神经网络变量筛选183 本例将结合BP神经网络应用平均影响值(MIV,Mean Impact Value)方法来说明如何使用神经网络来筛选变量,找到对结果有较大影响的输入项,继而实现使用神经网络进行变量筛选。 第21章 LVQ神经网络的分类——乳腺肿瘤诊断188 威斯康星大学医学院经过多年的收集和整理,建立了一个乳腺肿瘤病灶组织的细胞核显微图像数据库。数据库中包含了细胞核图像的10个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度),这些特征与肿瘤的性质有密切的关系。因此,需要建立一个确定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化特征诊断乳腺肿瘤是良性还是恶性。 第22章 LVQ神经网络的预测——人脸朝向识别198 现采集到一组人脸朝向不同角度时的图像,图像来自不同的10个人,每人5幅图像,人脸的朝向分别为:左方、左前方、前方、右前方和右方。试创建一个LVQ神经网络,对任意给出的人脸图像进行朝向预测和识别。 第23章 小波神经网络的时间序列预测——短时交通流量预测208 根据小波神经网络原理在MATLAB环境中编程实现基于小波神经网络的短时交通流量预测。 第24章 模糊神经网络的预测算法——嘉陵江水质评价218 根据模糊神经网络原理,在MATLAB中编程实现基于模糊神经网络的水质评价算法。 第25章 广义神经网络的聚类算法——网络入侵聚类229 模糊聚类虽然能够对数据聚类挖掘,但是由于网络入侵特征数据维数较多,不同入侵类别间的数据差别较小,不少入侵模式不能被准确分类。本案例采用结合模糊聚类和广义神经网络回归的聚类算法对入侵数据进行分类。 第26章 粒子群优化算法的寻优算法——非线性函数极值寻优236 根据PSO算法原理,在MATLAB中编程实现基于PSO算法的函数极值寻优算法。 第27章 遗传算法优化计算——建模自变量降维243 在第21章中,建立模型时选用的每个样本(即病例)数据包括10个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度)的平均值、10个量化特征的标准差和10个量化特征的最坏值(各特征的3个最大数据的平均值)共30个数据。明显,这30个输入自变量相互之间存在一定的关系,并非相互独立的,因此,为了缩短建模时间、提高建模精度,有必要将30个输入自变量中起主要影响因素的自变量筛选出来参与最终的建模。 第28章 基于灰色神经网络的预测算法研究——订单需求预测258 根据灰色神经网络原理,在MATLAB中编程实现基于灰色神经网络的订单需求预测。 第29章 基于Kohonen网络的聚类算法——网络入侵聚类268 根据Kohonen网络原理,在MATLAB软件中编程实现基于Kohonen网络的网络入侵分类算法。 第30章 神经网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类277 为了便于使用MATLAB编程的新用户,快速地利用神经网络解决实际问题,MATLAB提供了一个基于神经网络工具箱的图形用户界面。考虑到图形用户界面带来的方便和神经网络在数据拟合、模式识别、聚类各个领域的应用,MATLAB R2009a提供了三种神经网络拟合工具箱(拟合工具箱/模式识别工具箱/聚类工具箱)。

.NET Conf China 2020讲师 PDF

.NET Conf China 2020讲师 PDF

Xshell破解版

Xshell破解版,亲测可用,Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。

抢茅台脚本以及使用方法

抢茅台的方法,里面有脚本文件和python的安装包,小白可以学习使用,大佬绕行吧,哈哈

相关热词 c#建立坐标系 c# 截取数字串 c# 坐标正算 c# 波形显示控件 野比 c# sql 语法判断 c#多线程有关的类 c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#角度转弧度