Java 任务的并行和非并行执行

Java 任务的并行和非并行执行,java,Java,我正在创建一个系统,在接收到用户的命令后,它将执行几种操作。其中一些命令是: 确认(如果用户询问您情况如何,她会返回) 温度(返回当前温度) 拍照(拍摄一些照片) 视频捕获(拍摄视频) 系统有一个摄像头,因此最后两个任务不能并行执行。但在拍摄图像时,它可以感应温度并将其返回给用户 我认为要实现它,我需要一些任务的并行和非并行执行。我不知道java并发中是否存在我可以用来实现这一点的东西。我没有要求任何代码。任何关于如何执行的指针都会对我非常有帮助。是的,Java有执行命令的特殊框架。请参见层

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

  • 确认(如果用户询问您情况如何,她会返回)
  • 温度(返回当前温度)
  • 拍照(拍摄一些照片)
  • 视频捕获(拍摄视频)
系统有一个摄像头,因此最后两个任务不能并行执行。但在拍摄图像时,它可以感应温度并将其返回给用户


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

是的,Java有执行命令的特殊框架。请参见层次结构

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

有许多使用示例,例如:

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

ExecutorService threadPoolExecutor =
        new ThreadPoolExecutor(
                corePoolSize,
                maxPoolSize,
                keepAliveTime,
                TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>());
执行器服务线程池执行器= 新线程池执行器( 核心池大小, 最大池大小, 守时, TimeUnit.ms, 新建LinkedBlockingQueue());
Ok,我将创建两个
ThreadPoolExecutor
s。一个用于单个处理任务,如图像、视频,将maxPool=1,另一个用于并行任务,如确认或温度等,maxPool=2/3。我将根据这两个执行者的类别将此作业提交给他们,他们将
执行那些
可运行的
。我说的对吗?听起来不错。在同一份申请中,很多不同的申请往往会有很多执行人。我感谢你的帮助。