Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计划的任务流_Java - Fatal编程技术网

Java 计划的任务流

Java 计划的任务流,java,Java,我需要创建一个从Someware检索数据的计划任务,然后执行解析-->然后操作-->然后创建输出文件-->然后发送输出文件 我想使用5个工作类:MainExecutor类、Retriever类、Reader类、Builder类、Sender类 主MainExecutor类将使用ScheduledThreadPoolExecutor来调度检索器 我想让这个应用程序可扩展。我是否需要将这些类(Reader、Builder、Sender)中的每一个都设置为单独的线程 我是否需要为它们中的每一个使用线程

我需要创建一个从Someware检索数据的计划任务,然后执行解析-->然后操作-->然后创建输出文件-->然后发送输出文件

我想使用5个工作类:MainExecutor类、Retriever类、Reader类、Builder类、Sender类 主MainExecutor类将使用ScheduledThreadPoolExecutor来调度检索器

我想让这个应用程序可扩展。我是否需要将这些类(Reader、Builder、Sender)中的每一个都设置为单独的线程

我是否需要为它们中的每一个使用线程池


实现此程序的最佳方法是什么?

检索器和发送器可能会阻塞等待网络,读卡器必须是IO密集型的,构建器可能是CPU密集型的。因此,是的,在不同的线程上运行它们是有意义的。您只需要一个线程池就可以处理所有线程


这将使您的应用程序更具可扩展性,并将提高性能(吞吐量)。缺点是需要组织线程之间的通信。

取决于线程之间的数据依赖关系,不是吗?