对于这样的问题,在单cpu的机子上效率会高吗?比如,要从10个文件中读数据,并做一些处理。
方法一:循环10次
方法二:用两个线程

解决方案 »

  1.   

    进行io的时候是不占用cpu的哦
      

  2.   

    Cpu运算的时间肯定要小于IO操作的时间
    从你的要求来看,整个系统的时间占用大体都都在从文件读数据上(排除对读取的
    数据做很复杂且费时的操作情况),这时候,你采用线程处理,在线程切换和I/O操作的切换中,
    反而会占用更多的时间,费力不讨好(具体情况,具体分析,这是一种可能)比如,你在读取A文件的时候,还没有结束,另一个线程运行,去读B文件,那么,磁盘就要
    重新寻导,找到文件位置,定位文件头部,等等操作,这样,运行结束后,再去运行前一个
    线程,又要重新寻导,来定位A文件,这就浪费了时间了当然,如果你把文件读取和处理分离成两个线程操作,一个负责IO,一个处理运算
    ,性能还是有提高的,具体要看处理过程所占的比重
      

  3.   

    哎   你们   理解错了
    那个不是CPU运算不过来
    是大部分CPU都处于空闲时间   用多线程是为了CPU得到充分利用啊
    回去看看操作系统吧    学点这些对理解编程有帮助的拉
    小弟现在正在努力学习英文中   这个也是变成必须的拉
      

  4.   

    Kally_321() 
    这位仁兄好像很有见地,为何不更详细的说明出来和大家切磋切磋。
    操作系统我学得也不算差,你凭什么叫别人会去看书?
      

  5.   

    线程数量不宜开的太多,过多的话,会造成CPU不停的忙于切换时间片~~~
    可以用线程池来处理~~~
    以前试过开5个线程和开50个线程的处理速度一样,大家也可以试试~~~
      

  6.   

    darkula(流浪街头的呆子) 
    见识了
    谢谢