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:在该类的一个实例(对象)中,synchronized
用于防止在多个对象或多个线程中同时运行方法吗?将非静态方法声明为synchronized
表示将在对象实例本身上同步代码。实际上,写作:
public synchronized void doStuff()
{
whatever();
}
相当于:
public void doStuff()
{
synchronized(this) {
whatever();
}
}
谷歌的“Java并发实践”。买这本书。这是家庭作业,请学习一些more@Adel不,这不是我的家庭作业,我是java学习者。@user3314119似乎不太可能考虑到你今天的帐户。。。大概只是想问这个问题。阅读更多关于同步的内容,这不是一个陌生的话题。你会找到很多关于它的信息。@JoshM你能给我一个链接来找到我的答案吗?你找不到你问题的具体答案。您必须阅读有关同步的内容并应用这些知识来回答您的问题。感谢您的回复,那么
同步静态方法如何呢
?然后它将在类对象本身上同步:同步(MyClass.class){whatever();}
。这是可行的,因为所有Class
对象都是单例对象。