java关于等待线程结束的问题!

如何等待线程结束?在这红色的下划线部分,等待线程结束后QueryResultsResult123的值才等于线程里的results[0]这么怎么弄?怎么写求代码!谢谢大神... 如何等待线程结束?

在这红色的下划线部分,
等待线程结束后 QueryResult sResult123 的值 才等于 线程里的 results[0]

这么怎么弄?怎么写 求代码!谢谢大神
展开
 我来答
vampire_c
推荐于2017-09-16 · TA获得超过735个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:482万
展开全部

简单地可以使用 Thread.join() 方法来等待线程结束,例如这样修改一下:

Thread t = new Thread() {
  // 同原来的 run()
};
t.start();

// 调用这个方法,会挂起当前线程直至线程t结束
t.join();

join()方法的文档是这么写的: Waits for this thread to die.


也可以用wait/notify或mutex等机制来对两个线程进行同步,稍微复杂一点,例如使用 wait/notify:

new Thread() {
  public void run() {
    // 同原来的代码,加上以下代码用于同步
    synchronized (results) {
      results.notifyAll();
    }
  }
}.start();

// 通过以下代码挂起当前线程,等待其他线程通知
synchronized (results) {
  results.wait();
}

以供参考。


同 i178269245 所说,等待线程结束势必要挂起当前线程,也就没必要用线程了,也许需要重新考虑一下这种实现方式。

i178269245
2015-03-10 · TA获得超过185个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:114万
展开全部
有这种需求用什么线程,线程就是做异步处理的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式