不同对象,不同线程上的同步方法

时间:2014-02-15 18:48:41

标签: java multithreading

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

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是否可以防止在多个对象或多个线程中同时运行方法?

1 个答案:

答案 0 :(得分:2)

将非静态方法声明为synchronized表示代码将在对象实例本身上同步。在写,写:

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

相当于:

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

Google for“Java Concurrency in Practice”。并购买这本书。