用例: 我有 50 多个客户,每个客户的活动都记录在单独的 Excel 文件中。每 5 分钟就会将每个客户的新文件添加到共享文件系统位置。
应用程序启动时,我将启动一个线程来查询客户记录并为每个客户启动一个线程。客户详细信息存储在数据库表中。使用执行器服务线程池并为每个客户提交一个任务。
每个客户线程读取 Excel 文件并使用多线程并发处理 Excel 中的每一行。每个客户线程都会为 Excel 文件中的每一行生成一个线程。客户线程等待所有子线程完成后再退出。
我想在客户执行器服务线程池中实现以下功能,
我面临的主要挑战是,如何确保每个客户只运行一个客户线程。
谢谢
您必须使用针对递归操作进行优化的 ForkJoinPool API。 这将允许您在处理客户的主线程下递归调用多个线程。
通过使用前面的方法,您可以通过为每个客户同步创建线程来满足第 2 个要求。