代码如下:
public class SleepQueue {
//当前休眠队列
private static ArrayList sleepqueue=new ArrayList();
public static boolean Add(Pthread PthreadCur,int milliseconds){
SleepThread Cur=new SleepThread(PthreadCur,milliseconds);
!@#$$% //加入队列
SleepQueue.sleepqueue.add(Cur);
return true;
}
}
public class ReadyQueue {
public ReadyQueue() {
}
private static ArrayList readyqueue = new ArrayList();
}运行到!@#$$%时,readyqueue 增加了元素,sleepqueue没变
public class SleepQueue {
//当前休眠队列
private static ArrayList sleepqueue=new ArrayList();
public static boolean Add(Pthread PthreadCur,int milliseconds){
SleepThread Cur=new SleepThread(PthreadCur,milliseconds);
!@#$$% //加入队列
SleepQueue.sleepqueue.add(Cur);
return true;
}
}
public class ReadyQueue {
public ReadyQueue() {
}
private static ArrayList readyqueue = new ArrayList();
}运行到!@#$$%时,readyqueue 增加了元素,sleepqueue没变
SleepQueue.sleepqueue.add(Cur);
才会将Cur对象加入到sleepqueue!
SleepQueue.sleepqueue.add(Cur);
执行这一句之后,readyqueue.size()=3我试了运行SleepQueue.sleepqueue.clear();
readyqueue.size()没有变化
在其他的代码里面
你要好好查查
是不是在别的地方调用了ReadyQueue.readyqueue 总之不可能往其中加一个结果加到别的地方去了
你的代码应该仔细的调试一下
建议你不要用static ArrayList
类似C语言里的全局变量。