我正在用java进行线程编程,我遇到了一个问题,我必须一个接一个地执行2个线程。下面是简要概括我的问题的代码片段。
class A{
//default execute method of this class
String a="thread1";
String b="thread2";
public void execute(){
if(a=="thread1"){
CreateThread1 t1 = new CreateThread1(this);
t1.call();
}
else if(b=="thread2") {
CreateThread1 t2 = new CreateThread1(this);
t2.call();
}
}//end of execute
public void UpdateUI(){
try{
Display.getDefault.asyncExec(new Runnable(){
public void run(){
//ui update code here
}
});
}
catch(SWTException e){
}
}
}
Class CreateThread1{
private A object;
public CreateThread1(A object){
this.object=object
}
public void call(){
Thread t = new Thread(this);
t.start();
}
public void run(){
//business logic here
object.UpdateUI();//updates UI
}
}
这里的 A 类是显示线程任务进度的用户界面类,在上面的代码中,即使 CreateThread1 没有被杀死,CreateThread1 也会启动,CreateThread2 也会启动,我希望只有在 CreateThread1 完成任务后才触发 CreateThread2。这可能吗?有任何想法吗?