这是我的银行类,具有同步的存款和取款方法。
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/