![]() |
1
13
|
![]() |
2
6
不,它不是原子的。 See this question 为什么以及怎么做。 |
![]() |
3
4
java.util.concurrent.atomic -里面可能有一些好东西你可以用。 |
![]() |
4
2
在JVM上工作时,您需要关注对其他线程的更改的可见性。一般来说,你应该在一段时间内完成作业
但是,在您的情况下,听起来好像只有一个线程清除了“脏”标记—保存数据的线程。如果是这种情况,请清除标志
之前
写数据。如果其他线程设置它
虽然
您正在写入数据,它将保持设置状态,直到下一次计划写入。我会使用
|
![]() |
5
1
设置32位(至少在.NET中)是原子级的,但对您没有好处。你必须阅读它才能知道它是否被锁定,因此你可能会阅读它,在阅读之后,在你可以设置它之前,其他人会阅读它,因此两个线程结束 在…内 |
![]() |
6
0
在某些硬件和JVM上,某些副本将是原子的 但更安全的是,假设情况并非如此,即使是简单的整数到整数分配也可以转换为x856硬件上的四条机器指令。 两个线程可以同时更新。 |
![]() |
7
-2
据我所知,并不总是这样。 Int32将是,Int64不在32位系统上,因为它需要2 x 32位。因此,它不适合一个32位单元。 |