输入某个目录,遍历其下的所有文件!网上有很多简单的遍历算法,但数量大的话效率还是不够!

解决方案 »

  1.   

    可以试试用插件 mule 什么的,我也还在研究!
      

  2.   


    后半部分您也得同意:) 因为有的电脑如Unix服务器本身是支持多线程的,这时候确实能提高效率。
      

  3.   

    楼上,现在的操作系统,貌似都支持多线程吧。可是,这样只会效率更低,我之前已经解释过了,效率低的原因是多线程读取不同的文件,但是放在不同的位置,磁头来回移动,所以效率低。就好比让你去不同的教室领书,你就好比是磁头,你只有一个,但是你想同时去领,怎么领呢,先去一楼领十本,再去二楼领十本,再去一楼领十本,再去二楼领十本,这样效率会高吗?要知道,多线程的本质并不是CPU真的同时处理多个线程,而是为各个线程分配时间片,一会执行这个线程,一会执行那个线程。而且,就算是多核CPU,关键是硬盘只有一个磁头,你的磁头能多线程吗?
    为什么说有的时候多线程可以带来效率呢?因为大多数任务并不是时刻都需要在执行的,经常会遇到等待的情况,比如说每20ms执行几个命令。那么等待的时间,分配给其他的线程使用的话,这样就充分利用CPU的时间,所以提高了效率。然而对于这个存取文件的程序,多线程没有任何提高效率的道理。
      

  4.   


    硬盘不止一个磁头的,磁头的数量取决于硬盘中碟片数量。3碟硬盘会有6个磁头。
    电脑中也未必只有一个硬盘,unix下同一个文件夹下的文件完全可能分布在不同的硬盘下。