并行和非并行执行任务

时间:2014-05-08 06:56:20

标签: java

我正在创建一个系统,它将在收到用户命令后执行几种操作。一些命令是:

  • 致谢(如果用户问你怎么回事,她会回来)
  • 温度(返回当前温度)
  • 照片拍摄(拍摄一些照片)
  • 视频捕捉(拍摄视频)

系统有一个摄像头,因此最后两个任务不能并行执行。但是在捕捉图像时,它可以感知温度并将其返回给用户。

我认为要实现它我需要进行某种并行和非并行的任务执行。我不知道是否存在java并发存在的东西,我可以使用它来实现这一点。我不是要求任何代码。关于它如何完成的任何指针对我都非常有帮助。

1 个答案:

答案 0 :(得分:1)

是的,Java有执行命令的特殊框架。请参阅java.util.concurrent.Executor层次结构。

例如,java.util.concurrent.ThreadPoolExecutor基于内部线程池执行runnables。最大线程池大小为1表示没有并行执行。

有许多使用示例,例如here

int corePoolSize = 5; int maxPoolSize = 10; long keepAliveTime = 5000;

ExecutorService threadPoolExecutor =
        new ThreadPoolExecutor(
                corePoolSize,
                maxPoolSize,
                keepAliveTime,
                TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>());