Java 计划的任务流
我需要创建一个从Someware检索数据的计划任务,然后执行解析-->然后操作-->然后创建输出文件-->然后发送输出文件 我想使用5个工作类:MainExecutor类、Retriever类、Reader类、Builder类、Sender类 主MainExecutor类将使用ScheduledThreadPoolExecutor来调度检索器 我想让这个应用程序可扩展。我是否需要将这些类(Reader、Builder、Sender)中的每一个都设置为单独的线程 我是否需要为它们中的每一个使用线程池Java 计划的任务流,java,Java,我需要创建一个从Someware检索数据的计划任务,然后执行解析-->然后操作-->然后创建输出文件-->然后发送输出文件 我想使用5个工作类:MainExecutor类、Retriever类、Reader类、Builder类、Sender类 主MainExecutor类将使用ScheduledThreadPoolExecutor来调度检索器 我想让这个应用程序可扩展。我是否需要将这些类(Reader、Builder、Sender)中的每一个都设置为单独的线程 我是否需要为它们中的每一个使用线程
实现此程序的最佳方法是什么?检索器和发送器可能会阻塞等待网络,读卡器必须是IO密集型的,构建器可能是CPU密集型的。因此,是的,在不同的线程上运行它们是有意义的。您只需要一个线程池就可以处理所有线程
这将使您的应用程序更具可扩展性,并将提高性能(吞吐量)。缺点是需要组织线程之间的通信。取决于线程之间的数据依赖关系,不是吗?