有多台机器上传文件,因此,必须使用多线程,作用主要是:
1. 线程A随时收取各机器分割的文件.放入字符数组中.
2. 线程B将分割的文件进行合并,清除合并好的字符数组中内容.
 现在线程A已经写好,将分割的文件(字符串),取出,并且放入数组中.
1.线程B如何写?
2.A如何通知B进行文件合并?
3.如何考虑使用最小内存,机器比较多,分割的小文件也比较多?

解决方案 »

  1.   

    考虑到线程安全的问题,用TThreadList来放数组。A可以一边往TThreadList里面
    放,B一边取,都不会有问题。因为A创建了数组,而B最终要清除数组,在内存使
    用上面要注意一点。
    关于通知,B可以轮询,就是说TThreadList里面有东西就合并,没有东西就闲着。
    如果实在要通知的话,SetEvent可以用上。关于最小内存,如果B过程比较慢的话,A过程往内存里面放再多东西也没有用,
    只是占着内存而已,可以让A放慢一下速度,先别狂往内存里面导文件。另外,你这个也并非就一定是多线程吧?从你说的情况来看。