仅在完成线程后继续

时间:2014-09-06 20:59:19

标签: java

我在匿名类中创建了新线程。如何在线程完成之前暂停程序。 检查一切是否正常好我创建while循环不继续,但我知道这不是解决方案。 我寻找最简单的解决方案。

 public void methodName() {
    Thread t = new Thread() {
        public void run() {
        }
    }
    t.start()
    System.out.print("Finish");
} 

我想在完成线程后完成打印。

在线程中我使用外部库。我发现线程完成但我在线程内运行的函数没有完成。他们是像Lock或Synchronize这样的方式通知我可以在此功能完成之前停止运行吗?

当函数运行完成时,我可以将变量放在该位置。

     ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore");
     query.getInBackground("xWMyZ4YEGZ", new GetCallback<ParseObject>() {
     public void done(ParseObject object, ParseException e) {
          if (e == null) {
           // object will be your game score
          } else {
          // something went wrong
           }
       }
       });

这是来自API。我想把这个代码放在Thread中,并且只在调用done函数后继续。  谢谢,

1 个答案:

答案 0 :(得分:7)

只需在主题上调用join

t.start();
t.join();
System.out.print("Finish");

join调用在返回之前等待线程终止。