这是我的银行类,它具有同步的存款和取款方式。
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()
本身方法)。< / p>
synchronized
是否可以防止在多个对象或多个线程中同时运行方法?
答案 0 :(得分:2)
将非静态方法声明为synchronized
表示代码将在对象实例本身上同步。在写,写:
public synchronized void doStuff()
{
whatever();
}
相当于:
public void doStuff()
{
synchronized(this) {
whatever();
}
}
Google for“Java Concurrency in Practice”。并购买这本书。