小弟现在想做一个UDP数据交换的程序,其中UDP数据交换步骤都一样,但是如果有很多路要交换,就要多开几个线程处理,避免速度缓慢问题,所以就有多个线程用同一线程函数的想法,但是总觉得这样没有提高效率,不知道有没有好一点的方法,高手们多多指教,帮帮忙,先谢谢了~

解决方案 »

  1.   

         效率问题是我搞错了,我刚刚试了下,应该没问题,有点就是,我要交换UDP数据,定义了一个结构体数组,里面包含套接字,地址什么,打算传一个结构体指针到线程里,然后每个线程中用参数结构体中套接字,地址等进行交换。这样就没有全局或者静态的,也就不用锁了吧!主要是想听听大家看法,我以前没试过,不知道效果! 现在基本都想通了,一开始我还是没把多线程用同一函数理解透彻啊! 非常感谢大家了
      

  2.   

        每个线程有每个线程序的代码区,涵数代码是一样但都会各自的在内存生成一样的指令放到各自的代码区里面让CPU访问然后执行的,跟效率没关系.
        还有就是多路交换不是应该多开几个线程的问题,应该自己建立消息队列让线程去处理消息
        因为线程太多不是一件好事,线程多了操作系统在线程调度的时间也会响应增加,不能说有几路几用几个线程单独处理
        假设一部电脑,开了N个IE,就算每个IE都没东西处理,但就按任务栏去选某个IE都应该会让机器很卡,线程是同样的道理