L liujunzhang Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #1 请问如果我要发送一个文件,采用多线程应该怎么样做呢? 现在我是把一个文件分成很多块,在循环的发送! 这样肯定很慢,我想做成多线程,不知道如何?请高手指教!
L liujunzhang Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #2 请问多线程的同步和异步问题?同步应该用在什么地方,异步呢?
T thx1180 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #3 看《Delphi 5开发人员指南》第十一章。 永远的Delphi有下,网址: http://fdelphi.myrice.com/delphidoc.html
L liujunzhang Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-27 #4 请问如果我要发送一个文件,采用多线程应该怎么样做呢? 现在我是把一个文件分成很多块,在循环的发送! 这样肯定很慢,我想做成多线程,不知道如何?请高手指教!
L liujunzhang Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-30 #5 UP,现在啊,怪不得中国的程序员是如此低廉!这么好的题目!不知道都在这里发言~ 以后你们有这样的问题!可以查一下就知道了!唉~!为你们不值呀!而且我都还送发 呢?并且我那里也都还有问题呢!
F firstrose Unregistered / Unconfirmed GUEST, unregistred user! 2003-06-14 #7 开n个thread,给每个thread设定数据块,然后就发啊。只是要用到临界区使socket的使用 不冲突。读文件就没关系了。接收要注意写文件别冲突了。
A archonwang Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-11 #9 看看这个吧, http://www.delphibbs.com/keylife/iblog_show.asp?xid=4131
D dongliang110 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-13 #12 线程同步可以用EnterCriticalSection(CS),leaveCriticalSection(CS)InitializeCriticalSection(cs); DeleteCriticalSection(cs)相结合来保护临界区,同步应该用在所有线程共同访问的对象上。
线程同步可以用EnterCriticalSection(CS),leaveCriticalSection(CS)InitializeCriticalSection(cs); DeleteCriticalSection(cs)相结合来保护临界区,同步应该用在所有线程共同访问的对象上。
C cccccw Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-13 #14 其他的廉价问题不谈。关于线程同步的问题,delphi一般使用TCriticalSection 和 API: setEvent, WaitForSingleObject 。前者对一些不能读写共享的资源进行临界,后者实现线程间的同步,再就是,你的程序2个线程应该就是比较优化的值,只有在网络延时大的情况下效率提升明显。 我的想法是:将数据分快,对数据块的读取实施临界,多个线程事实读取后发送,当然得开多路连接,数据块编号,在接收端实施重组装,如果接收端缓冲不够,(在最前面的块传送失败,需要重传),使用同步等待新缓冲释放,当然,组装也使用另线程并负责写下到硬盘。对公用缓冲实施临界。
其他的廉价问题不谈。关于线程同步的问题,delphi一般使用TCriticalSection 和 API: setEvent, WaitForSingleObject 。前者对一些不能读写共享的资源进行临界,后者实现线程间的同步,再就是,你的程序2个线程应该就是比较优化的值,只有在网络延时大的情况下效率提升明显。 我的想法是:将数据分快,对数据块的读取实施临界,多个线程事实读取后发送,当然得开多路连接,数据块编号,在接收端实施重组装,如果接收端缓冲不够,(在最前面的块传送失败,需要重传),使用同步等待新缓冲释放,当然,组装也使用另线程并负责写下到硬盘。对公用缓冲实施临界。