A
awsoft
Unregistered / Unconfirmed
GUEST, unregistred user!
高手请看 看后发表意见!!!!!!!!!
你能实现 给我点起事我实验一下! 我想了很久
我在学习多线程 ! 拿多线程拷贝来说 我用TFileStream或TMemoryStream来工作!
结果 我发现和系统的拷贝时间 差不多 !
我想 1、可能是硬盘独占 文件的读取是独占的 就是你用多线程和不用是一样的
按理说 把文件分成几个部分由多个线程同时(CPU分时间片)拷贝 应该快 !但是你想 文件的指针你能随便动吗 ? 即 第一个线程拷贝时 先动文件指针到要考的位置 然后拷贝,第二个线程拷贝时,要把文件指针改到要拷贝的地方 同里3、4、5等等线程拷贝时都要先改指针,要不然会发生错误!
问题在这里 改动指针时 别的线程是不能改的 所以我们用 信号量、互斥对象等等 控制,你想想 当一个线程拷贝时 其他线程停止等待这个线程拷完然后改指针再进行拷贝!这跟系统的拷贝没区别,还是没发挥多线程的威力! 并没多占时间片来进行拷贝,占了时间片也是等带 等待 等到别的线程拷完在改指针!
我想在计算机中 指针存在 指针寄存器里 我们用多线程时 总是一个指针寄存器在为我们工作,我们的线程不得不等着 轮流使用 ! 我想这是主要问题所在 !
如果我们把文件加载到内存里,然后分块 我们开始 多个线程从 不同内存地址开始拷贝 这我们成功了! 但 你想 就一个指针寄存器记录当前的指针位置 我们没办法 每个线程拷贝时都要用指针寄存器指向不同的位置来进行拷贝,这个过程进行中别的线程不能打扰!这样还是不行呀!!!!! 到头来还是一个线程 结果跟系统拷贝时间差不多 !由于你的代码问题(其实耽误的时间)肯定比系统拷贝要慢!
你能实现 给我点起事我实验一下! 我想了很久
我在学习多线程 ! 拿多线程拷贝来说 我用TFileStream或TMemoryStream来工作!
结果 我发现和系统的拷贝时间 差不多 !
我想 1、可能是硬盘独占 文件的读取是独占的 就是你用多线程和不用是一样的
按理说 把文件分成几个部分由多个线程同时(CPU分时间片)拷贝 应该快 !但是你想 文件的指针你能随便动吗 ? 即 第一个线程拷贝时 先动文件指针到要考的位置 然后拷贝,第二个线程拷贝时,要把文件指针改到要拷贝的地方 同里3、4、5等等线程拷贝时都要先改指针,要不然会发生错误!
问题在这里 改动指针时 别的线程是不能改的 所以我们用 信号量、互斥对象等等 控制,你想想 当一个线程拷贝时 其他线程停止等待这个线程拷完然后改指针再进行拷贝!这跟系统的拷贝没区别,还是没发挥多线程的威力! 并没多占时间片来进行拷贝,占了时间片也是等带 等待 等到别的线程拷完在改指针!
我想在计算机中 指针存在 指针寄存器里 我们用多线程时 总是一个指针寄存器在为我们工作,我们的线程不得不等着 轮流使用 ! 我想这是主要问题所在 !
如果我们把文件加载到内存里,然后分块 我们开始 多个线程从 不同内存地址开始拷贝 这我们成功了! 但 你想 就一个指针寄存器记录当前的指针位置 我们没办法 每个线程拷贝时都要用指针寄存器指向不同的位置来进行拷贝,这个过程进行中别的线程不能打扰!这样还是不行呀!!!!! 到头来还是一个线程 结果跟系统拷贝时间差不多 !由于你的代码问题(其实耽误的时间)肯定比系统拷贝要慢!