zoukankan      html  css  js  c++  java
  • python多线程和多进程对比

    1、多线程:开启一个进程test.py ,占用两个cpu  共占用45%左右(top -c ,按1)  多进程:开启两个进程test.py 用两个cpu  90%*2左右

    test.py 

    # coding=utf-8
    
    from multiprocessing import Pool  # 多线程版本from multiprocessing.dummy import Pool 
    import sys, os 
    import time
    
    def timetask(times):
        while 1:
            pass
    
        
    if __name__ == '__main__':
        startTime = time.time()
        worknum = 2  
        processnum = 2 
        pool = Pool(processnum)  
        for i in range(worknum):
            pool.apply_async(timetask, (i, ))  
        pool.close()
        pool.join()
        endTime = time.time()
        print "time :", endTime - startTime

    2、多线程:开启一个进程test.py ,两个gzip进程 占用两个cpu  多进程:开启两个进程test.py  ,两个gzip进程 (主进程test.py  S状态)

    多线程、多进程都用两个cpu  90%左右

    # coding=utf-8
    
    from multiprocessing import Pool 
    import sys, os
    import time
    
    def timetask(times):
        cmd="tar zcfPh /nerri_%s.tar.gz   /tmp"   % times
        os.system(cmd)
    
    
        
    if __name__ == '__main__':
        startTime = time.time()
        worknum = 2  # time : 55.9383509159
        processnum = 2 # 进程版本 processnum:2, time : 55.9383509159;processnum:1,time : 108.528738976 ;线程版本 processnum:2,time : 55.0623002052 
        pool = Pool(processnum)  
        for i in range(worknum):
            pool.apply_async(timetask, (i, ))  
        pool.close()
        pool.join()
        endTime = time.time()
        print "time :", endTime - startTime
  • 相关阅读:
    new一个对象的时候,实际做了些什么
    ES6 class——getter setter音乐播放器
    vue中引入公用过滤器?
    this详解下
    012天this详解上
    011天之跨域资源共享CORS
    010天JSON.stringify()详解
    009天之跨浏览器的事件处理程序
    使用XHR上传文件要不要了解一下?
    简单化最小化语句数
  • 原文地址:https://www.cnblogs.com/nerrissa/p/5603372.html
Copyright © 2011-2022 走看看