本帖最后由 zhanghe100 于 2011-03-24 10:33:53 编辑

解决方案 »

  1.   

    LZ正解,多线程就是从主进程分出多个线程,达到程序并发执行的目的,前几天做Socket通信就用到这个,主线程监听,当监听到有一个用户机连接本机时就创建一个线程给这个用户进行交互
      

  2.   

    你可以参考一下孙鑫的书,多线程其实就是为了能让程序能够并发执行,
     下面是一个VC++的多线程控制台程序
      Handle Htread;
      for(int i=0;i<ThreadId;i++)
    {
       此处可以添加一些处理
       hThread=CreateThread(NULL,0,FunProc,&msg[i],0,NULL);//创建线程
        // CloseHandle(hThread);//关闭线程的句柄
    }
    这样就能处理多线程
     其中的FunProc就是要调用的线程函数
      

  3.   

    说下我的理解:
    多线程就是NEW出多个线程:
    多线程是多个线程并发执行,当然单核实际上是不可能并发的,只是看上去并发了。你可以NEW出多个线程,让多个线程同时工作。
    把这些线程放到线程池里:
    并不一定要放到线程池里,自带的线程池是可以独立管理线程的,你可以NEW一个线程池,然后让他帮你管理你的线程,比如:服务器监听,有新的连接就开启一个新的线程,执行完后线程池可以回收。而自己NEW的线程池需要自己管理。当然线程池也有坏处。
    等这些线程完成后,通知线程池继续下一组:
    多线程是说多个任务同时执行,至少看上去是,比如有NEW了5个线程,就可以有5个任务同时执行,多的任务是不会等待的,线程池就不同,比如你NEW了一个线程池,设置了线程池最大线程大小为5个(根据机器有差别,我的可以设置200个没问题),当有5个任务在执行时,新的任务等待,等5个中一个执行完了就进入一个任务。
    当设置200个时,就可以同时执行200个任务,以此类推。但自带的线程池开启线程是有时间的,大概1秒开启不会超过2个线程。
    只是我的理解,错误的请大家指出。
      

  4.   

    下载代码去研究C#多线程处理多个队列的数据(交叉线程访问及Invoke方法使用)http://www.csframework.com/archive/2/arc-2-20110323-1224.htm
      

  5.   

    多线程就是让CPU在执行一个进程任务的时候,让任务的每个子任务都有几个得到时间片去执行~