仅在完成线程后继续

Alo*_*lon 2 java

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

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

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

在线程中我使用外部库.我发现线程完成但我在线程内运行的函数没有完成.他们是像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
           }
       }
       });
Run Code Online (Sandbox Code Playgroud)

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

Col*_*lin 8

只需调用join线程:

t.start();
t.join();
System.out.print("Finish");
Run Code Online (Sandbox Code Playgroud)

join该线程调用等待返回之前终止.

  • 强制Javadoc链接:http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#join-- (2认同)