方法中的线程逻辑
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
我需要了解方法中的线程 运行,例如如果我这样做
线程执行,一切正常
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