很无聊的在弄一个页面访问的程序,发现50条线程和200条同时访问的速度差不多,每秒7到8次左右,这个速度是怎么回事?
50条线程同时访问最起码2秒也得有50次啊,也不可能是网络问题,50条线程同时访问一个站点,双方的承受里也没可能这么差吧
是线程的什么机制问题吗?然后再问一个问题:
我以前用VB6编写一个计票的程序,算法很烂,导致处理要10秒以上,CPU100%,现在如果说用C#再写一次,算法什么的都先不管,还是那样,利用多线程,能否提升速度?
我的疑点是,既然CPU100%的执行,说明这个时候系统是全力进行我的计算的,也就是说,应该是以最快的方式进行了吧?
那么使用多线程还有意义吗?比如说将文本切成N份,然后启动线程来分别对应一份进行统计计票。
这个时候的速度比VB的快吗?(这个问题建立在不考虑算法和优化的情况下,也就是说完全一模一样,只是一个单线程全力计算,另外一个分N份用线程处理)

解决方案 »

  1.   

    多线程的原理是在CPU空闲的时候分配时间片给其他代码段,所以说应该也是有极限的
      

  2.   

    1.线程只是能提高计算机的工作效率,减少CPU的空转时间,并不会加快速度,这是很多人都有的一个认识的误区。
    2.同样,只要在你的VB6代码中,CPU的运算时间没有被空耗,那么多线程不能提高你的计算速度的,甚至因为线程本身的切换要额外消耗时间,还有可能导致速度下降。
      

  3.   

    当线程数远远超过物理 CPU 数量的时候,线程的唯一作用就是拖慢系统