回答
Java 提供了多种解决线程安全问题的方法,主要分为几类:
- 同步机制
- 无锁机制
- 线程局部变量
同步方式
一 、synchronized
synchronized
是一个用于实现线程同步,确保多线程环境下对共享资源安全访问的关键字。它可以修饰方法或代码块,保证同一时刻只有一个线程可以执行同步方法或代码块内的代码。
public void increment() {
synchronized (this) {
count++;
}
}
关于 synchronized
的核心原理请阅读这几篇文章:
二、ReentrantLock