如何一次运行2个特定线程?像platform.runLater()和其他一些线程

时间:2018-07-10 13:26:51

标签: java javafx

我的线程方法看起来像

public void run(){
    int loop=100;
    int time=5;
    long StartTime = System.currentTimeMillis() / 1000;
    for(int i=0;i<loop;i++){
    Platform.runLater(new Runnable() { 
    @Override
    public void run() { 
    r2.setWidth(r2.getWidth()+1);
    }
    });
    try{
    Thread.sleep(100);
    if((time < ((System.currentTimeMillis() / 1000) - StartTime)))
        loop=0;
    }
    catch(Exception e){

    }
    }
}

在我的代码中的某个地方,我创建了如下线程。

CustomThread thread[]=new CustomThread[3];
double len[]={30,60,90};
for(int i=0;i<thread.length;i++){
    thread[i]=new CustomThread(len[i]);
    thread[i].start();
/*  try{
    thread[i].join();
    }
    catch(Exception e){}*/
}

我希望线程[i]完成它的执行,而另一个线程[i + 1]将要完成它的执行。通过线程[i] .join();我希望其他线程停止此线程执行,但platform.runLater()线程会在我调用join()时停止。总体上,我希望platform.runLater()可以与当前线程连续执行。有什么建议吗?

0 个答案:

没有答案