利用socket 多线程 模拟多用户从服务端同时下载。
 比如Thread1 下载10%后 Thread2开始下载。。
 问题是当Thread1继续下载时,怎么可以继续写文件那。给点提示。

解决方案 »

  1.   

    "问题是当Thread1继续下载时,怎么可以继续写文件那"?
    多个线程写文件时,你在写资源上加个锁啊,这样才能保证不会发生死锁、脏数据。
    像下面Lock l = ...; 
         l.lock();
         try {
             // 写文件
         } finally {
             l.unlock();
         } 
      

  2.   

    你的意思是说当Thread1下载了10%后,中断了,过断时间后(也就是得到了CPU的调度后又开始下载)?如果是这样的话,这就类似以个断点续下载的问题了。你可以为每个线程增加一个配置文件,这个配置文件记录该线程已经下载到了哪个字节了,当该线程再次开始下载的时候,线程根据配置文件里记录的位置向后下载就可以了。