Java多线程中如何保证i++的结果正确
- 使用 Atomic变量,Java 并发包内提供了一些原子类型,如AtomicInteger、AtomicLong等,这些类提供了一些原子操作方法,可以保证相应的操作的原子性。
这里使用 AtomicInteger 类来保证 i++ 操作的原子性。
- 使用synchronized,对i++操作加锁。
这里使用 synchronized 方法来保证 increment() 方法的原子性,从而保证 i++ 操作的结果正确。
- 使用锁机制,除了使用 synchronized 关键字外,还可以使用 ReentrantLock 类来保护临界区域。
这里使用 ReentrantLock 类的 lock() 和 unlock() 方法来保护 i++操作的原子性。
![](/images/780-200-2.jpg)