Java多线程(全)学习笔记(中)

Java多线程(全)学习笔记(中)

ID:37845175

大小:525.28 KB

页数:22页

时间:2019-06-01

Java多线程(全)学习笔记(中)_第1页
Java多线程(全)学习笔记(中)_第2页
Java多线程(全)学习笔记(中)_第3页
Java多线程(全)学习笔记(中)_第4页
Java多线程(全)学习笔记(中)_第5页
资源描述:

《Java多线程(全)学习笔记(中)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、资源下载地址:http://download.csdn.net/detail/cloudyxuq/3763101四.多线程的同步以一个取钱列子来分析:(用户登录那些省略)Accout类:[java]viewplaincopy1/**银行取钱,账户类*/2publicclassAccout{3//账户编号4privateStringaccoutNo;5//账户余额6privatedoublebalance;7//账户名称8privateStringaccoutName;9publicAccout(){

2、10super();11}12publicAccout(StringaccoutNo,StringaccoutName,doublebalance){13super();14this.accoutNo=accoutNo;15this.balance=balance;16this.accoutName=accoutName;17}18publicStringgetAccoutNo(){19returnaccoutNo;20}21publicvoidsetAccoutNo(StringaccoutNo)

3、{22this.accoutNo=accoutNo;23}24publicdoublegetBalance(){25returnbalance;26}27publicvoidsetBalance(doublebalance){28this.balance=balance;29}30publicStringgetAccoutName(){31returnaccoutName;32}33publicvoidsetAccoutName(StringaccoutName){34this.accoutName

4、=accoutName;35}36//根据accoutNohe来计算Accout的hashcode和判断equals1@Override2publicinthashCode(){3returnaccoutNo.hashCode();4}5@Override6publicbooleanequals(Objectobj){7if(obj!=null&&obj.getClass()==Accout.class){8Accouttarget=(Accout)obj;9returntarget.getAcco

5、utNo().equals(accoutNo);10}11returnfalse;12}13}DrawThread类:[java]viewplaincopy14/**取钱的线程类*/15publicclassDrawThreadimplementsRunnable{16//模拟用户账户17privateAccoutaccout;18//当前取钱线程所希望取得值19privatedoubledrawAmount;20publicDrawThread(Accoutaccout,doubledrawAmo

6、unt){21super();22this.accout=accout;23this.drawAmount=drawAmount;24}25//如果多个线程修改同一个共享数据时,会发生数据安全问题26publicvoidrun(){27//账户余额大于取款金额时28if(accout.getBalance()>=drawAmount){29//取款成功30System.out.println(Thread.currentThread().getName()+accout.getAccoutName(

7、)+"取款成功:吐出钞票:"+drawAmount);31//修改余额32accout.setBalance(accout.getBalance()-drawAmount);33System.out.println("当前余额为:"+accout.getBalance());34}35//账户金额不够时36else{37System.out.println("账户金额不够,您的余额只有"+accout.getBalance());1}2}3}TestDraw测试类:[java]viewplainco

8、py4publicclassTestDraw{5publicstaticvoidmain(String[]args)throwsInterruptedException{6//创建一个用户7Accoutacct=newAccout("123456","小明",1000);8//模拟四个线程同时操作9DrawThreaddt=newDrawThread(acct,600);10//DrawThreaddt1=newDrawThread(acct,800);11Threa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。