Java synchronized 修饰符
时间: 2024-02-26 16:50:05 浏览: 86
Java中的synchronized修饰符用于实现线程同步,确保多个线程在访问共享资源时的安全性。它可以修饰方法和代码块。
1. 修饰方法:
```java
public synchronized void method() {
// todo
}
```
上述代码中,synchronized修饰的方法在同一时间只能被一个线程访问,其他线程需要等待。
2. 修饰代码块:
```java
public void run() {
synchronized (this) {
for (int i = 0; i < 5; i++) {
try {
System.out.println(Thread.currentThread().getName() + ":" + (count++));
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
上述代码中,synchronized修饰的代码块使用this作为锁对象,同一时间只能有一个线程进入该代码块执行。
3. 修饰静态方法:
```java
public synchronized static void method() {
// todo
}
```
上述代码中,synchronized修饰的静态方法在同一时间只能被一个线程访问,其他线程需要等待。
需要注意的是,synchronized关键字不能继承,子类需要重新添加synchronized关键字来实现同步。
阅读全文