【发布时间】:2013-12-01 15:07:50
【问题描述】:
这是得到错误的方法
public int getMaxTimeBetweenCustomers()
{
return Integer.parseInt(maxTimeBetweenCustomers);
}
这是调用上述^方法的run方法。如果我尝试在方法之外初始化变量它不起作用,所以我不确定该怎么做。
private void doSomething() throws InterruptedException
{
maxCustomers = myController.getMaxCustomers();
int myCounter=0;
String message;
while(myCounter < maxCustomers)
{
Customer customer= this.generateCustomer();
myServiceQueue = myServiceQueueManager.determineShortestQueue();
myServiceQueue.insertCustomer(customer);
myTime = System.currentTimeMillis();
myController.controllSetImages();
myCounter++;
System.out.println("my counter " + myCounter);
try
{
Thread.sleep(this.generateTimeBetweenCustomers());
}
catch(InterruptedException e)
{
message = e.getMessage();
System.err.println(message);
}
}
}
上面的方法doSomething()在run方法中被调用
【问题讨论】:
-
你的代码进入了无限循环!
-
getMaxTimeBetweenCustomers不可能导致 SO 异常。 -
@SameerSawla:这不仅仅是一个无限循环——它是递归的。
-
堆栈跟踪会很有用
-
doSomething 不调用 getMaxTimeBetweenCustomers
标签: java multithreading function methods stack-overflow