首页 > 编程语言 > 详细

GIL线程与进程选择

时间:2018-06-18 22:59:34      阅读:227      评论:0      收藏:0      [点我收藏+]

#!/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))

GIL线程与进程选择

原文:https://www.cnblogs.com/fmgao-technology/p/9196601.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!