日期:2014-05-20  浏览次数:20852 次

java程序,调试正常,运行混乱
我的Java程序运行总是错误,于是就调试。
单步调试总是正确,TMD,这是咋回事?
求高人指点啊。
------最佳解决方案--------------------
首先楼主先淡定淡定不要急。。。。然后。。。。代码贴出来看看。。。
------其他解决方案--------------------
写代码心态要好,别急啊楼主!
------其他解决方案--------------------
为老公java球人品
------其他解决方案--------------------
遇到并发了吧
------其他解决方案--------------------
或者是线程安全之类的,不外乎这两类
------其他解决方案--------------------
迷糊  …  …

------其他解决方案--------------------
null
------其他解决方案--------------------
这个谁知道你怎么回事,什么代码都没有
------其他解决方案--------------------
代码贴出来看看呗
------其他解决方案--------------------
引用:
首先楼主先淡定淡定不要急。。。。然后。。。。代码贴出来看看。。。

	for (int startTime = 1; startTime < lastTime; startTime++) {
System.err.println("-----------------------------------Time "
+ startTime);
if (inWorkSet.size() == 0 && state) {
System.err.println("All is done.");
break;
}
// 下面的for循环用于检查是否有船可靠泊
for (Vessel vessel : list) {
if (startTime == vessel.getArriveTime()) {
int a;
if ((a = findEnoughBerth(vessel.getLength())) >= 0) {
vessel.setStartLocation(a);
System.out.println("Vessel " + vessel.getIndex()
+ " is berthed started in " + a);
System.out.println("Vessel " + vessel.getIndex()
+ " length is " + vessel.getLength());
inWorkSet.add(vessel);
state = true;
currentVessel = vessel;
berthAlloacte(vessel);
} else {
vessel.setArriveTime(vessel.getArriveTime() + 1);
}
} else {
break;
}
}
list.remove(currentVessel);
// 下面的if是在此刻有船靠泊后为其执行。无新船靠泊就跳过
if (currentVessel != null) {
while (QCS_left > 0) {
if (currentVessel.getQCs_allocated() < currentVessel
.getMaxQCs()) {
currentVessel.setQCs_allocated(currentVessel
.getQCs_allocated() + 1);
QCS_left--;
} else {
break;
}
}
}

// 给泊位中的每艘船作业
Vessel doneVessel = null;
for (Vessel vessel : inWorkSet) {
System.out.println("Vessel " + vessel.getIndex() + " has QCs "
+ vessel.getQCs_allocated());
vessel.setWorkAmount(vessel.getWorkAmount()
- vessel.getQCs_allocated());
System.out.println("Vessel " + vessel.getIndex()
+ " left work is " + vessel.getWorkAmount());
if (vessel.getWorkAmount() <= 0) {
System.err.println("Vessel " + vessel.getIndex()
+ " is done.");
doneVessel = vessel;