高效的线程方案

时间:2012-10-09 10:08:27

标签: java multithreading interrupt

我正在编写一个通过串口执行某些操作的java GUI。由于我不希望它在等待响应时阻止,我认为有一个线程,这是一个更好的方法,但现在我面临两个选项,我不知道哪个会是效率更高:

  • 案例1:为每个异步任务创建一个线程。
  • 案例2:保持单个线程处于休眠状态,并通过更改原子整数的值然后中断它来执行不同的任务。

这些操作都不是处理器密集型的,但我仍然想知道将线程永久保存在内存中是否明智。

2 个答案:

答案 0 :(得分:2)

我会使用像

这样的单线程ExecutorService
private final ExecutorService service = Executors.newSingleThreadExecutor();

service.submit(new Runnable() {
   public void run() {
       // task to perform here.
   }
});

您可能需要一个不同的线程来读取和写入串行设备。

答案 1 :(得分:1)

看一下ExecutorService,我想这就是你所需要的。

根据Peter的建议,您可以使用newSingleThreadExecutor创建ExecutorService并使用它来处理您的任务。