丿末兮 2016-04-24 15:34 采纳率: 0%
浏览 1923
已采纳

while循环为什么跳出了还会再运行一次 新人求知道

实体类
package com.pij.bean;

public class bean {
private int num = 501;

public int getNum() {
    return num;
}

public void setNum(int Num) {
    this.num = num - Num;
}

}

实现接口
package com.pij.imp;

import com.pij.bean.bean;

public class imp implements Runnable {
bean bn = new bean();

@Override
public void run() {

    bea(50);

}

public synchronized void bea(int num) {

    while (true) {

        if (bn.getNum() >= num) {

            System.out.println("你在使用网络系统调用的货物预定");
            System.out.println("现存备货:" + bn.getNum());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.err.println(Thread.currentThread().getName()
                    + "货物调用预定成功");
            bn.setNum(num);
        } else {
            System.out.println("仓库备货不足");
            System.out.println("现存货数量:" + bn.getNum());
            break;

        }


    }
}

}

测试类
package com.pij.text;

import com.pij.imp.imp;

public class test {
public static void main(String[] args) {
imp a = new imp();
Thread b1 = new Thread(a);
Thread b2 = new Thread(a);

    b1.setName("五厂XX");
    b2.setName("二厂XXX\t\t\t\t");
    b1.start();
    b2.start();


}

}

  • 写回答

4条回答 默认 最新

  • threenewbee 2016-04-24 15:39
    关注

    何以见得多运行了一次?你有两个线程,考虑到这个了么

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月6日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站