Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java编程中提供延迟?_Java_Multithreading - Fatal编程技术网

如何在java编程中提供延迟?

如何在java编程中提供延迟?,java,multithreading,Java,Multithreading,我想用一个特定的时间一个接一个地画一些矩形。 我使用thread.sleep()方法,但它直接停止线程的工作,而不是继续。请在工作线程上使用。指定睡眠的毫秒数: Thread.sleep(2000); // two seconds 请注意,您需要处理中断异常您需要将睡眠放在另一个线程中。如果将睡眠放在GUI线程中,GUI将冻结 编辑:我的坏消息,将把它作为旁注保留在这里。查看。这些可以运行一个固定的时间。在每个执行器单元内,您可以绘制一个矩形。(在上)API文档顶部有一个有用的示例您可以使用T

我想用一个特定的时间一个接一个地画一些矩形。
我使用thread.sleep()方法,但它直接停止线程的工作,而不是继续。请在工作线程上使用。

指定睡眠的毫秒数:

Thread.sleep(2000); // two seconds

请注意,您需要处理中断异常

您需要将睡眠放在另一个线程中。如果将睡眠放在GUI线程中,GUI将冻结


编辑:我的坏消息,将把它作为旁注保留在这里。

查看。这些可以运行一个固定的时间。在每个执行器单元内,您可以绘制一个矩形。(在上)API文档顶部有一个有用的示例

您可以使用
Timer
TimeTask


查看此图。

您应该在单独的
线程中实例化每个绘图。为睡眠的每个循环创建单独的
线程

这样,就可以将
循环
的线程与
绘图
的线程分开。因此,消除了冻结

主要是:

   try {
      while (true) {
        Thread t = new Thread(new RunTest());
        t.start();
      }
    } catch (InterruptedException iex) {}
这将为您的绘图创建无限多个线程。只需修改这个循环


请参见此处。

注意,这是它将休眠的最小值,因为这是真正的解决方案<代码>线程。睡眠(…)
只是在提供的时间内停止线程的执行。使用Timer和TimerTask,您可以计划线程的执行。您是在Swing中执行此操作的吗?您能提供更多上下文吗?你到底是怎么画矩形的?一些示例代码?
   try {
      while (true) {
        Thread t = new Thread(new RunTest());
        t.start();
      }
    } catch (InterruptedException iex) {}