日期:2014-05-20  浏览次数:20615 次

有关是否采用多线程的问题?
我现在遇到的问题是:要从一个目录里面取zip数据,然后解压它,找到一个其中的文件比如说.aaa,解压后,将其它的数据都上传到一个服务器上,现在要解析aaa这样的文件(这两步可以是串行的),解析成生成xml文件,然后上传到另一个目录里,总体来说是这样一个过程,是否能采用线程来实现?还有,从一个目录里取zip的时候,这个目录下的文件是在不断的增加。可以是手工,也可是以别的方式,反正就是一直有zip文件进来,这个地方,如果写成一个线程的话是不是需要考虑取到的数据会重复?希望高手能给一点思路,,组长说为了提高性能,一定要采用多线程,愁的呐

------解决方案--------------------
用一个线程去遍历目录,由于目录下面的文件可变,所以这个线程应该是定时遍历,发现一个新的zip文件就起一个线程去解压,上传跟解析。
------解决方案--------------------
我觉得可以这样,首先肯定取文件夹下的zip包,取到1个交给一个线程去做(你可以记录下这个zip文件名)去除重复,然后解压这个zip 查到需要解析的.aaa去另开个线程做XML解析上传,剩下的还是当前线程继续做上传处理
------解决方案--------------------
应该是任务模型。

主线程负责扫描目录下的文件,如果有发现新文件就生成任务,扔给线程池即可。
线程池可以设置一个固定大小的规模,比如10个线程。


这类批处理程序,需要严格注意对发生异常情况的控制。