Java中两个线程之间的时间延迟

时间:2012-01-05 22:37:47

标签: java concurrency sleep wait

我有以下情况:

new Thread() {
    public void run() {
        method(object1);
    }
}.start();

// some code ... 

new Thread() {
    public void run() { 
        method(object2);
    }
}.start();

使用的方法是地图绘制方法。所以基本上,首先我需要使用object1绘制地图,然后在一段时间之后,例如5秒使用object2的另一张地图。

我试图将Thread.sleep(5000)放在两个Thread之间,等等......但是我无法使它工作。有什么建议吗?

在这种情况下,显示对象2而对象1不显示!
如果我评论第二个线程,则绘制第一个对象。此外,如果我评论第一个线程,则绘制第二个对象。
我需要的是将object1呈现10秒然后呈现object2。

2 个答案:

答案 0 :(得分:4)

尝试简化:

method(object1);
Thread.sleep(5000);
method(object2);

如果您需要等待5秒钟,则无需运行线程。

或者,您可以使用java.util.Timer - 但到目前为止,您的问题似乎不在延迟部分。

答案 1 :(得分:2)

如果你需要在object1之后用object2绘制地图,你应该

new Thread() {
    public void run() {
        method(object1);
        method(object2);
    }
}.start();

我不确定你的方法(object1)需要多长时间才能运行但是如果这需要超过5秒并且线程在睡眠后回来,那么方法(object2)将启动并且方法(object2)成为可能如果这比方法(object1)花费的时间少,将首先完成。