java 多线程上锁
时间: 2023-10-12 12:58:31 浏览: 94
浅谈多线程中的锁的几种用法总结(必看)
在 Java 中,可以使用关键字 `synchronized` 来对多线程进行上锁。
在使用 `synchronized` 时,可以有两种方式来实现多线程的上锁:
1. 对方法进行上锁:可以在方法的声明处使用 `synchronized` 关键字,这样当一个线程进入该方法时,其他线程将被阻塞,直到该线程执行完该方法并释放锁。
例如:
```java
public synchronized void myMethod() {
// 方法体
}
```
2. 对代码块进行上锁:可以通过创建一个对象来作为锁,并使用 `synchronized` 关键字来对代码块进行上锁。这样只有持有同一个锁对象的线程才能执行该代码块,其他线程将被阻塞。
例如:
```java
Object lock = new Object();
synchronized (lock) {
// 代码块
}
```
这样可以确保在多个线程同时访问共享资源时,只有一个线程能够执行相关代码,从而避免了竞态条件和数据不一致的问题。
阅读全文