我有一个内部线程可以执行某些操作的函数
public static void animate(int column,Image image)
{
new Thread(new Runnable() {
public void run() {
try {
/* Code */
repaint();
Thread.sleep(500);
repaint();
} catch (InterruptedException ex) {
}
}
}).start();
}
我在updateBoard函数中调用了动画函数,然后执行了i++。
我想使函数动画在线程结束之前不继续执行I++
在
animate
功能内部,我从头开始使用repaint()
函数,当我尝试使用.join()
时,它阻止了repaint()
线程。public static void updateBoard(int column, Image image) {
int i = 0;
animate(column,image);
i++;
}
最佳答案
像这样:
Thread t = new Thread(new Runnable(){...});
t.start();
t.join();
但是,这毫无意义。如果您要启动一个线程并立即阻塞等待它完成,您将不会获得任何并行性。您也可以只在当前线程中调用
Runnable::run
方法...并避免创建/启动线程的开销(并非微不足道!)。
关于java - 等到线程完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61521072/