美文网首页
python multithreading,multiproce

python multithreading,multiproce

作者: Do_More | 来源:发表于2017-07-15 17:14 被阅读0次
    import multiprocessing as mp
    import threading as td
    import time
    
    def job(q):
        res = 0
        for i in range(1000000):
            res += i + i ** 2 + i**3
        q.put(res)
    
    def multcore():
        q = mp.Queue()
        p1 = mp.Process(target=job,args=(q,))
        p2 = mp.Process(target=job,args=(q,))
        p1.start()
        p2.start()
        p1.join()
        p2.join()
        res1 = q.get()
        res2 = q.get()
        print('multcore: ',res1 + res2)
    
    def normal():
        res = 0
        for _ in range(2):
            for i in range(1000000):
                res += i + i ** 2 + i**3
        print('normal: ',res)
    
    def multithread():
        q = mp.Queue()
        t1 = td.Thread(target=job,args=(q,))
        t2 = td.Thread(target=job,args=(q,))
        t1.start()
        t2.start()
        t1.join()
        t2.join()
        res1 = q.get()
        res2 = q.get()
        print('multithread: ',res1 + res2)
    
    if __name__ == '__main__':
        st = time.time()
    
        normal()
        st1 = time.time()
        print('normal time: ',st1 - st)
    
        multithread()
        st2 = time.time()
        print('multithread time: ', st2 - st1)
    
        multcore()
        print('multcore time: ',time.time() - st2)
    
    

    result:

    normal time:  1.3973419666290283
    multithread time:  1.416612148284912
    multcore time:  0.7420649528503418
    

    相关文章

      网友评论

          本文标题:python multithreading,multiproce

          本文链接:https://www.haomeiwen.com/subject/yshzhxtx.html