方法中的线程逻辑

时间:2015-03-17 14:27:47

标签: java android multithreading performance java-ee

我需要了解线程如何在方法内运行,例如,如果我这样做

线程执行,一切正常

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 
     };
}

我的问题是我需要在我的方法中使用线程中的东西但是如果我用这种方式编写代码,我的线程终于被触发了。我如何首先使用我的线程然后使用其他方法?

抱歉我的英文

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果你需要按顺序执行......关于使用另一个线程的问题是什么?

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