java ren

matinhua的小站

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  189篇文章 :: 0篇收藏:: 39篇评论:: 3个Trackbacks

文章

收藏

相册

存档


正在读取评论……


每个对象在运行时都有一个关联的锁。这个锁可通过为方法添加关键字 synchronized 来获得。

对一个银行中的多项活动进行同步处理

public class Account {
 String holderName;
 float amount;
 public Account(String name, float amt) {
 holderName = name;
 amount = amt;
}

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

public synchronized void withdraw(float amt) {
 amount -= amt;
}

public float checkBalance() {
 return amount;
}
}

  deposit() 和 withdraw() 函数都需要这个锁来进行操作,所以当一个函数运行时,另一个函数就被阻塞。请注意, checkBalance() 未作更改,它严格是一个读函数。因为 checkBalance() 未作同步处理,所以任何其他方法都不会阻塞它,它也不会阻塞任何其他方法,不管那些方法是否进行了同步处理。

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=465880


[点击此处收藏本文]  发表于2005年07月14日 4:47 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论