我正在使用服务。下面是代码
public class A{
public static void main(String args[]){
ExecutorService executorService = Executors.newFixedThreadPool(5);
Runnable worker = new FileUploadThread("thread");
executorService.execute(worker);
}
}
public class FileuploadThread extends Thread{
//has a parametrized constuctor
@Override
public void run(){
for(int i=0; i<10000; i++){
syso("executing...");
}
}
}
当线程完成它的任务时,我想在main方法中接收一个事件或一些东西。我该怎么做?
3条答案
按热度按时间mccptt671#
当你
start
如果使用yourthread.start()创建一个线程,系统将启动一个新线程来执行run
方法。您可以简单地打印如下内容:System.out.println("FINISHED " + this.getName())
在比赛结束时run
方法。注:请确保你没有把上面的打印放在一些循环中,它应该是最后一个语句
run
方法.execute()方法与.start()几乎相同)u1ehiz5o2#
要了解任务状态,您需要将来的示例。现在有两点:
如果您只是想知道任务是否已完成,请使用
executorService.submit(worker)
,而不是executorService.execute(worker)
方法。如果您还想在任务完成后获得一些结果,请使用
Callable
接口而不是Runnable
. 见以下代码:输出:
h22fl7wq3#
你可以用
yourThread.join()
.