我想要从单个目录中通过多个线程加载文件的策略,而不会意外地通过多个线程加载相同的文件。
的解决方案: 的
允许每个线程按顺序收集要添加到其数据结构中的文件集,例如arraylist和process parallel。
取文件名,无论如何最后5位数字是数字,mod(last5digit,5) +1
会给1,2,3,4,5
,并且这些带有mod结果的文件将由相应的Thread 1
处理, ... Thread 5
。
我想要一个不应该存在互斥问题的解决方案。请根据您的经验告诉我您的意见。
答案 0 :(得分:1)
将所有文件推送到BlockingQueue
并让您的线程池将文件从队列中拉出。
这样,不会同时访问任何文件,也不需要任何互斥。
答案 1 :(得分:1)
基本上任何对列表的线程安全访问都应该有效。我想我会: