作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的银行类,具有同步的存款和取款方法。
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/
我是一名优秀的程序员,十分优秀!