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

关于多线程下载文件的问题
我想用socket进行文件传输,但是觉得单线程有点儿慢,于是想改用多线程下载。我的想法是这样的:将文件分块,建立多个socket,每个socket只发送文件的一块,在每个socket接收端,我用RandomAccessFile类找到文件偏移,然后写文件。
      这样实现了以后,可以运行,并且每个socket都运行正常,但是测试发现,多线程的传输速度并不比单线程快多少。不知道是为什么?请问哪位高手知道?非常感谢。
        另外,我不知道我的想法本身是不是有问题,如果哪位发现有问题或者您有好的想法,请多多指教,非常感谢。

------解决方案--------------------
我也不知道对不对,不过看过一本叫java thread 3rd edition的书,上面说实际
上java线程不是真正的多线程,只是在虚拟机范围内新开的线程,对多处理器的
机子来说,实际上和单线程一样。我想这里也差不多的原因。呵呵,我也在试着
用java写多线程下载程序。