|
1
2
当然不是。但是如果你在做一个涉及线程安全类的操作,比如
在将手动同步与
|
|
|
2
0
原子变量使用非阻塞算法(它使用比较和交换机制),所以您不应该在同步块中使用它,而是尽可能使用原子变量以获得更好的性能。 |
|
3
0
您的第二个代码有一个问题:
|
|
|
4
0
在你的例子中,这两种方法都可以使用
但在一般情况下,这取决于您的可变可见性范围。例如,如果你决定使用
选择什么还取决于变量被不同线程修改的频率。
|
|
|
5
0
在第一个示例中,使用两个同步。 原子整数实现” Non-blocking synchronization algorithm " 确切地 自由点 允许单个线程饥饿但保证系统范围内吞吐量的算法。 该算法借助机器指令工作。例如,在x86(自80486以来)和安腾体系结构中,这是作为比较与交换(CMPXCHG)指令实现的。 你的关键词“synchronized”是多余的,甚至不允许工作 无锁 算法具有很好的优势。 因此,在您的情况下,不要使用synchronized block,而是使用AtomicInteger。 |