1.你和你女朋友公用一张银行卡,你向银行卡中存取、你女朋友取钱!
package com.qf.zy1;
public class BankCard {
private int money;
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
package com.qf.zy1;
/**
* 取钱
* @author Administrator
*
*/
public class GetMoney implements Runnable {
private BankCard card;
public GetMoney(BankCard card) {
this.card = card;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
if(card.getMoney()>=1000) {
synchronized (card) {
card.setMoney(card.getMoney()-1000);
System.out.println(Thread.currentThread().getName()+"取出1000元,余额为"+card.getMoney());
}
}else {
System.out.println("余额不足,请充值...");
i--;
}
}
}
}
package com.qf.zy1;
/**
* 存钱
* @author Administrator
*
*/
public class SaveMoney implements Runnable{
private BankCard card;
public SaveMoney(BankCard card) {
this.card = card;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
synchronized (card) {
card.setMoney(card.getMoney()+1000);
System.out.println(Thread.currentThread().getName()+"存入1000元,余额是"+card.getMoney());
}
}
}
}
package com.qf.zy1;
/**
* 1.你和你女朋友公用一张银行卡,你向银行卡中存取、你女朋友取钱!
* @author Administrator
*
*/
public class Test {
public static void main(String[] args) {
BankCard card=new BankCard();
SaveMoney save=new SaveMoney(card);
GetMoney get=new GetMoney(card);
Thread boy=new Thread(save, "boy");
Thread girl=new Thread(get, "girl");
boy.start();
girl.start();
}
}
2.设计两个线程,一个线程负责求出1~10以内所有的偶数;然后,另外一个线程负责打印1~10以内所有的奇数。 测试时,分别设置线程的优先级,观察执行的顺序。
package com.qf.zy2;
public class EvenNumber implements Runnable{
@Override
public void run() {
for (int i = 2; i |