I ildg Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-07 #1 在多线程下载一个文件时需要多线程地同时写一个文件, 请问怎么写? 在下载之前是不是要建立一个与要下载文件同样大的空文件? 总共就20分了,以后有分了一定再加, 谢谢。
A app2001 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-08 #2 http://www.2ccc.com/article.asp?articleid=775 标 题:支持断点续传的在线更新代码
刘 刘麻子 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-13 #4 如果是拷贝文件,我感觉多线程没多大用处(一块硬盘的时候,不包含RAID情况) 因为,硬盘在同一时间只能唯一占用!也就是说,在一个瞬间,只可能有一个程序对他访问。 如果用多线程,效率反而会下降一些。 上面随意说说,请指正!多谢。
如果是拷贝文件,我感觉多线程没多大用处(一块硬盘的时候,不包含RAID情况) 因为,硬盘在同一时间只能唯一占用!也就是说,在一个瞬间,只可能有一个程序对他访问。 如果用多线程,效率反而会下降一些。 上面随意说说,请指正!多谢。
I ildg Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-13 #5 3x to 刘麻子,您说得很对, 不过我现在是下载文件啊,呵呵。
刘 刘麻子 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-15 #6 呵呵,没看清题目,只看到上面一条,以为你不是要下载呢。如果下载后再合并呢?
S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-15 #7 》在下载之前是不是要建立一个与要下载文件同样大的空文件? 应该是这样的,调用 CreateFile SetEndOfFile 建立一空文件 然后在每个线程中打开一个文件句柄,每个句柄可以独立的访问文件,文件位置指针是与文件句柄相关联的。 具体操作没有试过,仅供参考。
》在下载之前是不是要建立一个与要下载文件同样大的空文件? 应该是这样的,调用 CreateFile SetEndOfFile 建立一空文件 然后在每个线程中打开一个文件句柄,每个句柄可以独立的访问文件,文件位置指针是与文件句柄相关联的。 具体操作没有试过,仅供参考。
I ildg Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-20 #8 非常感谢savetime, 能不能具体的举个例子? 多谢啦~
S sodme Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-30 #9 我已经实现了的,分块写入,给每个线程指定不同的起始写地址,线程间访问文件时用互锁机制。
I ildg Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-31 #10 sodme: 能不能把你的代码给我看看? 我用多线程写入的原因是因为我想让写入更快, 如果写入时锁定文件,就会适得其反。 我已经知道怎么做了, 用内存映射文件。