gpt4 book ai didi

java - synchronized(this) 是否意味着当前线程对象获得了自己的锁?

转载 作者:搜寻专家 更新时间:2023-11-01 02:13:53 26 4
gpt4 key购买 nike

考虑以下代码 -

class MyThread extends Thread {
private int x = 5;

public void run() {
synchronized (this) // <-- what does it mean?
{
for (int i = 0; i < x; i++) {
System.out.println(i);
}
notify();
}
}
}

class Test {
public static void main(String[] args) {
MyThread m = new MyThread();
m.start();

synchronized (m) {
try {
m.wait();
} catch (InterruptedException e) {

}
}
}
}

在上面的例子中,Thread m 是否获取了自己的锁?

最佳答案

当前线程获取 MyThread 类关联实例的锁。

synchronized(this) 正在锁定与 main() 中的 synchronized(m) 相同的对象。

最后,

public void run() {
synchronized (this) {

完全等同于

public synchronized void run() {

关于java - synchronized(this) 是否意味着当前线程对象获得了自己的锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com