问题描述:在“E:/待处理”文件夹下面有多个文件夹,其中包含的文件后缀是.bmp,.doc,.txt,对于.bmp文件,使用DES加密算法解密,对于.doc文件,使用RSA算法解密,(具体加解密算法我的博客里面已经有了),对于.txt文件,什么也不干;然后把处理之后的文件放置到“F:/处理”所对应的文件夹下,再把原始文件删除掉。其中“E:/待处理”文件夹下的内容是常常会更新的(会经常收到客户使用公钥加密传过来的数据)。
我现在用的是单个生产者和单个消费者的方法来处理这个问题:
生产者负责收集“E:/待处理”下的符合条件的文件,生成一个ArrayList<File>,然后通知消费者,自己等待;
消费者负责对这个ArrayList<File>进行遍历,根据文件的后缀名采取不同的操作,处理完成之后通知给生产者,自己等待。
可是由于解密需要的时间比较长(特别是RSA解密),因此我想把它改写成单生产者,多消费者来完成这个任务:例如1个消费者负责处理txt文件,2个消费者负责处理bmp文件,3个消费者负责处理doc文件。请大家给点建议,如何实现呢?