gpt4 book ai didi

java - 不同对象、不同线程上的同步方法

转载 作者:行者123 更新时间:2023-12-02 06:12:00 25 4
gpt4 key购买 nike

这是我的银行类,具有同步的存款和取款方法。

public class BankAccount {

private float blance;

public synchronized void deposit(float amount) {
blance += amount;
}

public synchronized void withdraw(float amount) {
blance -= amount;
}
}

以下哪一项是正确的:

1:在该类的多个对象中,deposite()方法可以与withdraw()方法同时运行。

2:在此类的一个实例(对象)中,deposite() 方法可以同时在我的两个线程中运行。(并考虑将其用于 withraw() 通过其本身的方法)。

是否同步以防止在多个对象或多个线程中同时运行方法?

最佳答案

将非静态方法声明为同步意味着代码将在对象实例本身上同步。实际上,写作:

public synchronized void doStuff()
{
whatever();
}

相当于:

public void doStuff()
{
synchronized(this) {
whatever();
}
}

Google 搜索“Java 并发实践”。并购买这本书。

关于java - 不同对象、不同线程上的同步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21802025/

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