将Runnable对象排队以在一个线程中执行

时间:2012-08-30 07:43:39

标签: java

是否可以将多个Runnable对象排队等待在一个线程中执行?如何在不使用ExecutorService的情况下完成它?如果其中一个Runnable对象抛出未经检查的异常,它会停止执行线程会发生什么?

3 个答案:

答案 0 :(得分:1)

  

是否可以将多个Runnable对象排队等待在一个线程中执行?

使用ExecutorService。

  

如何在不使用ExecutorService的情况下完成任务?

使用BlockingQUeue和Thread。

  

如果其中一个Runnable对象抛出未经检查的异常,它会停止执行线程会发生什么?

这取决于你,因为你必须亲自写下来。

对于ExecutorService,Throwable thrown被添加到Future对象中供您检查。很容易忘记这样做,在这种情况下你需要为runnable添加一个try / catch块。

答案 1 :(得分:1)

是否有特定原因不使用ExecutorService?它提供了一个在一个线程中工作的实现:Executors.newSingleThreadExecutor()

答案 2 :(得分:0)

有可能。 打开一个侦听队列的线程,每次看到一个项目,它就会deques并运行它。 您可以将任务的执行包装在try catch块中,从而允许工作线程继续工作,即使其中一个任务引发了异常。

话虽如此 - 以上就是ThreadPoolExecuter的功能,为什么你不想使用它? (作业?)