1 / 22
文档名称:

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

格式:doc   大小:291KB   页数:22
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:86979448 2017/12/22 文件大小:291 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:资源下载地址:http://download./detail/cloudyxuq/3763101

以一个取钱列子来分析:(用户登录那些省略)
Accout类:
[java] view plaincopy
/**银行取钱,账户类*/
public class Accout {
//账户编号
private String accoutNo;
//账户余额
private double balance;
//账户名称
private String accoutName;
public Accout(){
super();
}
public Accout(String accoutNo,String accoutName, double balance) {
super();
= accoutNo;
= balance;
=accoutName;
}
public String outNo() {
return accoutNo;
}
public void outNo(String accoutNo) {
= accoutNo;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
= balance;
}
public String outName() {
return accoutName;
}
public void outName(String accoutName) {
= accoutName;
}
//out的hashcode和判断equals
***@Override
public int hashCode() {
return ();
}
***@Override
public boolean equals(Object obj) {
if(obj!=null&&()==){
Accout target=(Accout)obj;
return ().equals(accoutNo);
}
return false;
}
}
DrawThread类:
[java] view plaincopy
/**取钱的线程类*/
public class DrawThread implements Runnable{
//模拟用户账户
private Accout accout;
//当前取钱线程所希望取得值
private double drawAmount;
public DrawThread(Accout accout, double drawAmount) {
super();
= accout;
= drawAmount;
}
//如果多个线程修改同一个共享数据时,会发生数据安全问题
public void run() {
//账户余额大于取款金额时
if(()>=drawAmount){
//取款成功
(().getName()+()+"取款成功:吐出钞票:"+drawAmount);
//修改余额
(()-drawAmount);
("当前余额为:"+());
}
//账户金额不够时
else{
("账户金额不够,您的余额只有"+());
}
}
}
TestDraw测试类:
[java] view plaincopy
public class TestDraw {
public static void main(String[]args) throws InterruptedException{
//创建一个用户