【发布时间】:2011-12-02 19:31:18
【问题描述】:
我正在使用我在网上找到的一些 2DTransitions 创建一个 Java 幻灯片。一切工作顺利,但我遇到了一个问题,为什么要在幻灯片呈现后执行代码。我认为 Java 线程是用来隔离进程的,例如我有一个类似的设置,带有一个无限的 while 循环,一个线程解决了这个问题。在这里它不起作用,我不知道为什么。在下面的代码中,我得到了第一个输出,但它挂在 thread.run 上并且从不打印最后一个输出。
有什么想法吗?
以下是相关代码:
System.out.println("Slideshow init");
Thread thread = new Thread(new Runnable() {
//TODO SLIDESHOW PROBLEM RIGHT HERE
public void run(){
int i=0;
while(keepgoing){
if(i==images.size()-1){
transit(images.get(images.size()-1),images.get(0));
i=0;
}
else
transit(images.get(i),images.get(i+1));
i++;
}
}
});
System.out.println("Thread created");
thread.run();
System.out.println("Thread started");`
【问题讨论】:
-
我正确格式化了您的代码。你错过了“继续”的声明初始化,所以我不知道这个循环什么时候结束。
-
您撤消了我的格式更改,由于某种原因我无法回滚历史记录
标签: java multithreading