public class CardThread {
/**
* @param args
*/
public static void main(String[] args) {
Client c = new Client();
//设定5个窗口即5个线程
Thread t1 = new Thread(c);
Thread t2 = new Thread(c);
Thread t3 = new Thread(c);
Thread t4 = new Thread(c);
Thread t5 = new Thread(c);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class Bank{
//设定初始账户余额
private int sum = 0;
public void add(int num){
synchronized (this) {
//设定一个0-10(包括0但不包括10)的随机整数
int a = (int) (Math.random()*10);
//判断随机整数,在5之前则表示存款,之后表示取钱
if(a >=5){
sum = sum - num;
System.out.println("账户取出:"+num+"元,账户余额为:"+sum);
}else{
sum = sum + num;
System.out.println("账户存入:"+num+"元,账户余额为:"+sum);
}
try {
//延时1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
class Client implements Runnable{
private Bank b = new Bank();
@Override
public void run() {
//设定一个1-100(包括1和100)的随机整数
int i = (int) (Math.random()*100+1);
b.add(i);
}
}
/**
* @param args
*/
public static void main(String[] args) {
Client c = new Client();
//设定5个窗口即5个线程
Thread t1 = new Thread(c);
Thread t2 = new Thread(c);
Thread t3 = new Thread(c);
Thread t4 = new Thread(c);
Thread t5 = new Thread(c);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class Bank{
//设定初始账户余额
private int sum = 0;
public void add(int num){
synchronized (this) {
//设定一个0-10(包括0但不包括10)的随机整数
int a = (int) (Math.random()*10);
//判断随机整数,在5之前则表示存款,之后表示取钱
if(a >=5){
sum = sum - num;
System.out.println("账户取出:"+num+"元,账户余额为:"+sum);
}else{
sum = sum + num;
System.out.println("账户存入:"+num+"元,账户余额为:"+sum);
}
try {
//延时1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
class Client implements Runnable{
private Bank b = new Bank();
@Override
public void run() {
//设定一个1-100(包括1和100)的随机整数
int i = (int) (Math.random()*100+1);
b.add(i);
}
}