丿末兮 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日

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏