Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同对象、不同线程上的同步方法_Java_Multithreading - Fatal编程技术网

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

Java 不同对象、不同线程上的同步方法,java,multithreading,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:在该类的多个对象中,de

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

public class BankAccount {

private float blance;

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

public synchronized void withdraw(float amount) {
    blance -= amount;
  }
}
以下哪一项是正确的:

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

< P > 2:在该类的一个实例(对象)中,SaveTeIe()/Case>方法可以同时用自己的两个线程运行。(并且针对该代码< WordRe>(< /代码>自身方法))
synchronized
用于防止在多个对象或多个线程中同时运行方法吗?

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

public synchronized void doStuff()
{
    whatever();
}
相当于:

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

谷歌的“Java并发实践”。买这本书。

这是家庭作业,请学习一些more@Adel不,这不是我的家庭作业,我是java学习者。@user3314119似乎不太可能考虑到你今天的帐户。。。大概只是想问这个问题。阅读更多关于同步的内容,这不是一个陌生的话题。你会找到很多关于它的信息。@JoshM你能给我一个链接来找到我的答案吗?你找不到你问题的具体答案。您必须阅读有关同步的内容并应用这些知识来回答您的问题。感谢您的回复,那么
同步静态方法如何呢
?然后它将在类对象本身上同步:
同步(MyClass.class){whatever();}
。这是可行的,因为所有
Class
对象都是单例对象。