我想我会错过一些基本的东西,重新审视线程。但是,这是我的问题:
我有一台显示器在运行。另一方面,我有一个测试。测试确实执行了几次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似乎也在睡觉(至少它没有检查)。我认为显示器是一个单独的线程。
答案 0 :(得分:0)
我不确定你的代码是针对什么的,但有一件事是肯定的myQuery.execute()
将会阻止直到它完成。
如果你想在后台进行,你必须为它生成一个单独的线程:
new Thread() {
public void run() {
rs = myQuery.execute();
}
}.start();
但是,这有很多含义。有些是显而易见的,有些则不是,它肯定需要一些同步代码。
除非你知道自己在做什么,否则我强烈建议你采用单线程方法。