gpt4 book ai didi

java - 我们可以在Java中对象的构造函数中调用对象的同步方法吗?

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

我是 Java 新手。我想知道是否可以在构造函数中调用同步方法。有一个例子:

class a{
int a1;

public a(){
a1 = 1;
increment();
}

private synchronized void increment(){
a1++;
}
}

这是一个玩具示例。我可以在构造函数中将 a1 设置为 2。我只是很困惑我们是否可以在构造函数中调用 increment()

最佳答案

您可以这样做,但同步是没有意义的,因为同步方法将锁定当前正在创建的实例。但是当它还没有被创建和返回时,还有哪个线程可以访问它呢?没有人。
只要您遵循良好的实践,例如不将 this 传递给构造函数体内的其他类/对象,构造函数确实是事实上的线程安全的。
使用 synchronized static 方法或 static 字段上的 synchronized,您的示例可能更有意义。

关于java - 我们可以在Java中对象的构造函数中调用对象的同步方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568340/

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