package cn.study.concurrency.ch10;
public class Account {
private String staffAccount; //账号
private String passWord; //密码
private int balance; //账户余额
public Account(int money) {
this.balance = money;
}
public String getStaffAccount() {
return staffAccount;
}
public void setStaffAccount(String staffAccount) {
this.staffAccount = staffAccount;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public void debit(int amount)
{
System.out.println("转出账户:" + amount);
}
public void credit(int amount)
{
System.out.println("转入账户:" + amount);
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
package cn.study.concurrency.ch10;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.naming.InsufficientResourcesException;
/**
* 通过制定确定的锁顺序来避免死锁
* @author xiaof
*
*/
public class DeathLock {
public void transferMoney(Account fromAccount, Account toAccount, int amount) throws InsufficientResourcesException
{
synchronized(fromAccount)
{
synchronized(toAccount)
{
//按参数的顺序上锁,这个依据参数的调用方法的顺序
if(fromAccount.getBalance() <p>测试结果:</p><p><img src="https://img.php.cn//upload/image/696/477/691/1479361113752175.png?x-oss-process=image/resize,p_40" title="1479361113752175.png" alt="QQ图片20161117104700.png"></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill10666" title="Java Api Extractor"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20d3191a227.jpg" alt="Java Api Extractor" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill10666" title="Java Api Extractor" class="overflowclass">Java Api Extractor</a>
<p class="overflowclass">从 Java 项目中提取 Controller 层接口定义为 JSON 数据。</p>
</div>
<a rel="nofollow" href="/xiazai/skill10666" title="Java Api Extractor" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div>
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










