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。我将根据这两个执行者的类别将此作业提交给他们,他们将执行那些可运行的
。我说的对吗?听起来不错。在同一份申请中,很多不同的申请往往会有很多执行人。我感谢你的帮助。