如何把for循环拆分为多线程

   在开发过程,我们经常遇到,处理一个大任务需要for循环上百万千万次,任务简单还好,一下子跑完,任务稍微复杂一点,跑一天几天才能有结果,这时候程序就没啥用处了。

    举个简单例子,包工头拉来一车的砖,一个人一只一只的搬,需要一天,若我叫上一百个人,时间就减少一百倍了,叫上两百号人,时间就减少两百倍了。转到代码实现,我把请一个人比作创建一个线程,请十个人就创建十个线程,比如砖上面还有编号(0-9999),一共有10000块砖,请了10个人,那么每人就是1000块,那我创建线程的时候就可以传递参数下去,告诉第一个人,你搬0-999号,告诉第二人,你负责搬1000到1999号,以此类推,十个人任务就分配完。

简单的代码实现如下:


void *Multi_Threads(void * args)
{
  int i=0;
  int index= *(int*)args;
  for(i=index;i

你可能感兴趣的:(网络编程,c语言)