zoukankan      html  css  js  c++  java
  • GIL线程与进程选择

    #!/usr/bin/env python
    # encoding: utf-8  
    # Date: 2018/6/18


    # 计算密集型。应该启动多进程
    # from multiprocessing import Process
    # from threading import Thread
    # import os, time
    #
    #
    # def work():
    #     res = 0
    #     for i in range(100000000):
    #         res *= i
    #
    #
    # if __name__ == '__main__':
    #     l = []
    #     print(os.cpu_count())  # 8
    #     start = time.time()
    #     for i in range(8):
    #         # p = Process(target=work)  # 耗时10秒多
    #         p = Thread(target=work)  # 耗时45.689270973205566
    #         l.append(p)
    #         p.start()
    #     for p in l:
    #         p.join()
    #     stop = time.time()
    #     print('run time is %s ' % (stop - start))

    # io密集型,应该使用多线程
    from multiprocessing import Process
    from threading import Thread
    import os, time


    def work():
        time.sleep(2)


    if __name__ == '__main__':
        l = []
        # print(os.cpu_count())  # 8
        start = time.time()
        for i in range(400):
            p = Process(target=work)  # 12.44145154953003
            # p = Thread(target=work)  # 耗时2.0456738471984863
            l.append(p)
            p.start()
        for p in l:
            p.join()
        stop = time.time()
        print('run time is %s ' % (stop - start))

  • 相关阅读:
    反射-基础方法-java
    排序-插入-java
    排序-选择-java
    决策树
    python基础2 -画图
    python基础1
    如何实现用户的历史记录功能(最多n条)
    如何让字典保持有序
    如何快速找到多个字典中的公共键(key)
    如何根据字典中值的大小, 对字典中的项排序
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9196601.html
Copyright © 2011-2022 走看看