我举个简单的例子,(其实程序不是这么简单,和这类似)在adotable表里有1000000万条记录我现在要统计这个程序的某一个字段的和, 如果从头到尾for i:=1 to 1000000 do
begin
 sum_value:=sum_value+adouqeyr1.fieldbyname('field').asinteger;
end;这样就要花很多的时间,我现在想用多线程来计算, 比如10个线程, 一个线程每次计算
10条记录.第一个线程计算1-10,第二个计算11-20第十个计算91-100然后哪一个先计算完,就从后面继续算,(比如第二个先算完,那么他就取出101-110来算, 最后把所有的结果累加起来.怎样实现,(我现实的程序和这个类似) 问题解决给主答者500分(这里面包括怎样创建,怎样释放线程等等,我都不会)

解决方案 »

  1.   

    不用吧?
    SELECT SUM(‘FIELD’)FROM YOURTABLE;
      

  2.   

    这个问题用sum完全可以解决问题,但其实根本没这么简单,我是为了描述问题,
    才拿出这个例子的,(其实我不是想实现统计的)大家都用过网络蚂蚁,你看了他多点下载的程序吗?  
    就是一个问题,多个点同时处理,这样速度就更快了。那上面的这个例子用多线程该怎样处理呀. 不知大家能看懂否
      

  3.   

    反对你开多线程做同一件事的做法,我不明白其中有何意义?归根到底你只有一个cpu吧