为了账号安全,请及时绑定邮箱和手机立即绑定

java多线程的问题,没有报错,无法编译。

java多线程的问题,没有报错,无法编译。

慕粉3505864 2016-12-04 16:19:37
任务要求:账号里边有1000元创业基金。规定:其中的两位同学有取钱权限,用于购置物资。另外两位同学有存钱权限,用于将营利的资金存回到账号中。模拟银行系统对用户存款和取款的处理过程。源码:class Resource{ private String name; private int money = 1000; private boolean flag = false; public synchronized void set(String name){ try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.name = name+money; money++; System.out.println(Thread.currentThread().getName()+"..已存入.."+this.name); flag = true; notifyAll(); } public synchronized void out(){ try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"..已提取.."+this.name); flag = true; notifyAll(); }}class depositors implements Runnable{ private Resource  r; public depositors(Resource r){ this.r = r; } @Override public void run() { // TODO Auto-generated method stub while(true){ r.set("存钱"); } }}class Draw implements Runnable{ private Resource r; public Draw(Resource r){ this.r = r; } @Override public void run() { // TODO Auto-generated method stub while(true){ r.out(); } }}public class SetAndOutMoney { public static void main(String[] args) { // TODO Auto-generated method stub Resource r = new Resource(); Draw dr =new Draw(r); depositors de = new depositors(r); Thread t1 = new Thread(dr); Thread t2 = new Thread(dr); Thread t3 = new Thread(de); Thread t4 = new Thread(de); t1.start(); t2.start(); t3.start(); t4.start(); }}没有报错,为什么编译时候没有结果?
查看完整描述

1 回答

?
肥冰

TA贡献101条经验 获得超60个赞

wait(); ->   wait(1000);


查看完整回答
反对 回复 2016-12-04
  • 1 回答
  • 0 关注
  • 1709 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信