long double用在线程

探讨64位环境下longdouble类型变量的非原子性赋值问题,及如何通过Java的atomic包、锁机制和volatile关键字来解决多线程环境中的数据一致性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

long double在64bit环境里是按照两个32bit操作的,所以赋值不是atomic的。在并发线程中保证atomic,需要注意。

  1. 使用java.util.concurrent.atomic中atomicLong,atomicDouble。
  2. 使用lock,unlock同步赋值操作
  3. 使用volatile 定义变量
  4. 几种方式的性能未知

volatile基本含义是更新cpu cache中的值到main memory。在多线程环境中,不同线程变量值不一定会实时同步到main memory,会导致shared对象的值不一致。volatile可以确保shared object值一致,对读数据来说这就足够了,但对写操作,仍需要处理多线程同时写的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值