腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(8141)
视频
沙龙
1
回答
了解
->可
见性
的
VarHandle
内存
语义
java
、
shared-memory
、
java-memory-model
通过
内存
语义
和模型,我们通过指令重新排序和绕过屏障
的
缓存刷新/更新来理解它。在Java
的
Varhandle
类中,dey引入了许多
内存
语义
,但很少解释它到底是做什么
的
?我有以下问题和澄清所需
的
-> a)普通
的
set和get和普通
的
内存
访问一样,没有
内存
排序限制,也没有可
见性
保证?b)不透明
内存
语义
浏览 18
提问于2019-06-27
得票数 1
1
回答
为什么并发接口
的
AbstractQueuedSynchronizer构建块没有任何同步
的
东西?
java
、
multithreading
、
concurrency
、
synchronization
我试图从更高
的
层次上理解java
的
并发API是如何使用AbstractQueuedSynchronizer构建
的
。我在这个类中没有看到任何synchronized、wait() + notify()
的
用法。那么如何才能实现线程安全
的
代码呢?虽然我看到unsafe
的
CAS操作实现了一些原子性,但这还不足以拥有完全线程安全
的
代码。
浏览 1
提问于2019-07-06
得票数 3
1
回答
变量、易失性和
内存
访问
java
、
volatile
我正在尝试理解Varhandles,但是一些示例包含了不同
的
变量可
见性
方法。import java.lang.invoke.
VarHandle
; volatile intx; static { X = MethodHandles.lookup().我
的
意思是,如果您有一个易
浏览 5
提问于2022-04-03
得票数 1
1
回答
如何理解JDK9
内存
模型?
java
、
multithreading
、
volatile
、
java-9
、
java-memory-model
我正在学习JDK9
内存
模型。我对一些概念感到困惑。 // shared variable I and
VarHandle
I_HANDLE which referred to I public static int I =
浏览 6
提问于2021-01-26
得票数 5
回答已采纳
1
回答
发布序列
的
概念在实践中有用吗?
c++
、
multithreading
、
thread-safety
、
memory-model
、
stdatomic
C++原子
语义
只保证执行释放写(简单或读-修改-写)操作
的
最后一个线程执行
的
内存
操作
的
可
见性
(通过发生之前关系)。2操作(y == 2)
的
可
见性
,而不是线程1
的
可
见性
(甚至无法读取x)。当a中
的
值2是全局可见
的
时候,一个真实
的
实现怎么能不保证线程1
内存
操作
的
可
见性
呢? 换句话说,在发布序列定义中有什么好
浏览 2
提问于2019-05-08
得票数 4
2
回答
Java构造器和线程安全
java
、
multithreading
、
constructor
文献讨论了在对象
的
构造器完成其数据结构
的
分配和初始化之前通告对该对象
的
引用。这通常涉及到将它放在其他线程可以过早地看到它
的
地方。据我所知,它涉及一种明确
的
广告行为,比如当使用听众时。我
的
问题与构造函数
的
实现以及类似情况发生
的
可能性有关。我可以想象一个构造函数可以用类似如下
的
东西来实现:在C中
的
实现可能会这样做:然后继
浏览 0
提问于2020-05-15
得票数 1
1
回答
意外
的
VarHandle
性能(比备选方案慢4倍)
java
、
multithreading
、
concurrency
、
jvm
、
jvm-hotspot
在中,VarHandles
的
具体目标之一是提供一种替代使用FieldUpdaters和AtomicIntegers
的
方法(并避免与它们相关
的
一些开销)。AtomicIntegers在
内存
方面特别浪费,因为它们是一个单独
的
对象(每个对象使用大约36个字节,这取决于几个因素,比如是否启用了压缩OOPs等等)。,而不是对象中
的
字段。因此,我决定测试备选方案,并
了解
每种方案
的
性能影响。我想
了解
的
是,开销是从哪里来
的<
浏览 10
提问于2019-11-14
得票数 11
回答已采纳
2
回答
确切地说,‘-fno-
语义
-接口’与‘-fvisibility=protected`’有什么不同?
c++
、
c
、
gcc
、
elf
这意味着,对于从DSO导出
的
符号,编译器不能执行过程间传播、内联和其他优化,因为预期有关
的
函数或变量可能会改变。虽然这个特性很有用,例如,通过调试实现重写
内存
分配函数,但在代码质量方面却很昂贵。对于-fno-
语义
插入,编译器假定如果函数发生干预,则覆盖函数将具有完全相同
的
语义
(以及副作用)。类似地,如果变量发生插入,则变量
的
构造函数将相同。该标志对显式内联声明
的
函数(从不允许插入更改
语义
)和显式声明为弱
的
符号没有任何
浏览 1
提问于2018-07-07
得票数 4
1
回答
对于包结构是否有任何java模式来证明默认可
见性
修饰符
的
存在?
java
、
oop
、
design-patterns
我理解“如何构建包”是非常基于意见
的
。但是Java包含默认包可
见性
的
规则,因此它意味着在创建java时有一个特定
的
原因或模式,即如何使用面向对象
的
原则在面向对象
的
环境中构建包。(default) 乍一看,所有方法在
语义
上都应该被最初声明为默认方法(在本例中,除了作为入口点
的
main()之外,应该是公共
的
)。rotate()方法
的
默认可
见性
受到包
的
限制,它也无法从main()方法访问
浏览 1
提问于2015-03-12
得票数 1
回答已采纳
1
回答
为什么可为空
的
行版本列在
语义
上等同于var二进制(8)?
sql-server
、
database-design
、
sqldatatypes
这个声明: 我
的
特殊示例是,我将拥有一个包含来自其他表
的
行
的
副
浏览 4
提问于2013-06-07
得票数 7
1
回答
等待()并通知() JMM
语义
java
、
multithreading
、
synchronized
、
java-memory-model
、
happens-before
正如我们所知道
的
,在synchronized块中
的
入口,一个线程对其作用域中
的
所有共享(非本地)变量执行重读。某些底层体系结构
的
示例:如果线程A更新RAM中对象
的
状态,则进入同步块
的
线程B将看到更改。在退出synchronized块时也会发生类似的事情:线程将其作用域中
的
所有内容都刷新到
内存
中,以便其他线程可以看到它。这些都是JVM可
见性
的
基本保证,也是在出现强制执行规则之前发生
的
情况。但是,在<e
浏览 1
提问于2020-05-02
得票数 1
回答已采纳
1
回答
编译器重新排序与
内存
重新排序
c++
、
gcc
、
atomic
在gcc
的
指导下,可以使用以下指令来设置
内存
屏障。它们都提供不同
的
“保护”asm volatile("mfence" ::: "memory");reordering- acquire/release semantics我想知道g
浏览 1
提问于2014-12-14
得票数 2
回答已采纳
1
回答
共享存储器段中
的
位置
的
原子比较和交换
windows
、
shared-memory
、
atomic
、
compare-and-swap
我想
了解
在使用创建并在多个进程之间共享
的
段中,使用更改
内存
是否存在任何隐藏
的
问题。谢谢
浏览 0
提问于2012-12-05
得票数 4
回答已采纳
3
回答
Java
内存
模型:编译器重新排列代码行
java
、
memory
、
memory-model
众所周知,Java语言允许编译器重新排列编译后
的
代码行,只要重新排序对代码
语义
没有影响。但是,编译器只需要考虑从当前线程中看到
的
语义
。如果这种重新排序会影响多线程情况下
的
语义
,则通常会导致并发问题(
内存
可
见性
)。允许编译器使用这个freedm实现了什么?编译器真的有可能通过重新排列代码来生成效率更高
的
代码吗?我有时觉得,如果有的话,它带来
的
好处远远超过了它可能带来
的
浏览 1
提问于2012-01-05
得票数 7
回答已采纳
2
回答
语义
web使用XML而不是HTML或JSON吗?
html
、
json
、
xml
、
semantic-web
当我试图理解什么是
语义
web和使用什么技术
的
时候,我从中看到了 HTML根本不被使用,XML是否被使用呢?HTML中
语义
(内容)与表示分离
的
原则与
浏览 3
提问于2019-04-30
得票数 4
3
回答
非阻塞同步器?
java
、
concurrency
、
synchronization
、
nonblocking
Java中是否存在“非阻塞锁”之类
的
东西?我
的
意思是,是否有一种方法可以保留同步
的
属性(原子保护和
内存
可
见性
--后者可以稍后出现,但第一种是我现在要寻找
的
最重要
的
东西),但是也有多个线程不需要等待对象
的
监视器?我要寻找
的
不是CAS操作,而是synchronized关键字
的
实现,或者
的
实现,它
的
工作方式类似于 ,但具有实际
的
同步
语义
,不阻止线程执行
浏览 3
提问于2014-04-29
得票数 0
回答已采纳
2
回答
为什么易失性是较弱
的
同步形式?
java
、
multithreading
、
synchronization
正如所提到
的
, 下面的代码使用锁(synchronized)提供(互斥+
内存
可
见性
), private int value;value; }} 也
浏览 3
提问于2017-10-08
得票数 1
回答已采纳
5
回答
CouchDB
内存
中实现
couchdb
是否有CouchDB
的
模拟后端,即相同
的
REST接口和
语义
,但纯粹在
内存
中?我们有一个测试套件,每次都在原始数据库上运行每个测试(为了
可
重现),但在真实数据库上运行可能会更快。
浏览 0
提问于2012-05-11
得票数 8
2
回答
GCC:在什么方面,可见内部“在实际使用中是相当无用
的
”?
gcc
、
export
、
visibility
、
symbols
这已经奏效了,但是,在研究如何实现它
的
过程中,我在GCC
的
文档中发现了一个非常令人担忧
的
段落(参见,对标志-fvisibility
的
解释): 尽管有名称,默认总是表示公共
的
;也就是说,可以从共享对象
的
外部链接保护和内部在实际使用中是相当无用
的
,所以唯一其他常用
的
选项是隐藏
的
。如果未指定-fvisibility,则默认为默认,即将每个符号公开--这将导致与GCC早期版本相同
的
行为。我非常感兴趣
的
是,
浏览 4
提问于2014-01-27
得票数 21
回答已采纳
2
回答
原子变量是否保证
内存
可
见性
?
java
、
multithreading
、
concurrency
、
atomic
、
memory-visibility
关于
内存
可
见性
的
小问题。其次是由于潜在
的
内存
可
见性
问题,例如threadA将字段设置为true,但是后来希望读取字段值
的
threadB可能看不到该值,而且仍然认为值为false。最简单
的
解决方案是使用同步关键字,就像在CodeSample2中一样。代码在逻辑上做什么并不重要,我遇到
的
问题是,如果两个线程同时调用CodeSample3中
的
lock()方法,那么这个问题会怎么样?显然,对字段
的
任何写操作
浏览 4
提问于2017-03-17
得票数 11
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
并发开发中原子性、可见性和有序性是如何工作的
java并发编程-volatile内存实现和原理
一张思维导图说清java内存模型!
Java内存模型:看Java如何解决可见性和有序性问题
(七)Volatile的作用及原理
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券