方法中的线程逻辑

Thread Logic in Methods

我需要了解方法中的线程 运行,例如如果我这样做

线程执行,一切正常

private void someMethod()
{
    myThread obj = new myThread();
    obj.start();
}

private class myThread extends Thread {
     @Overrride
     public void run() { 
         // Actions 
     };
}

但是,如果我这样做,线程最终会被触发(在 callAnotherMethod 和那个随机变量声明之后),即使我先调用线程

private void someMethod()
{
    myThread obj = new myThread();
    obj.start();

    callAnotherMethod();
    String someVariable = "";
}

private class myThread extends Thread {
     @Overrride
     public void run() { 
         // Actions 
     };
}

我的问题是我需要在线程中创建一些东西以便在我的方法之后使用,但是如果我以这种方式编写代码,我的线程最终会被触发。我怎样才能先使用我的线程然后使用其他方法?

抱歉我的英语不好

如果您需要按顺序执行...使用另一个线程有什么意义?

但是如果你是 运行 两个重负载操作,一个在后台线程中,一个在当前线程中,你可以调用 .join() 然后继续...

您可以使用 Callable 和 Future 类。 Callable 是一个线程,一旦它的工作完成,returns 一个 Future 对象。您可以等待 Future 可用。 请参阅 JavaDoc 中的示例 - http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html