Jsystem:testcase中的Thread.sleep()暂停Monitor

时间:2010-05-03 06:41:26

标签: java multithreading monitoring

我想我会错过一些基本的东西,重新审视线程。但是,这是我的问题:

我有一台显示器在运行。另一方面,我有一个测试。测试确实执行了几次sql查询,每次执行之间等待一些ms与Thread.sleep(xy)。

for (int i = 0; (i < iterationsteps); i++) { 
    rs = myQuery.execute(); 
    //check if rs is empty 
    if (!rs.next()) { Thread.sleep(1000); 
    } 
}

现在的问题是,由于这个Thread.sleep(1000),Monitor似乎也在睡觉(至少它没有检查)。我认为显示器是一个单独的线程。

1 个答案:

答案 0 :(得分:0)

我不确定你的代码是针对什么的,但有一件事是肯定的myQuery.execute()将会阻止直到它完成。

如果你想在后台进行,你必须为它生成一个单独的线程:

    new Thread() {
        public void run() {
            rs = myQuery.execute(); 
        }
    }.start();

但是,这有很多含义。有些是显而易见的,有些则不是,它肯定需要一些同步代码。

除非你知道自己在做什么,否则我强烈建议你采用单线程方法。