zoukankan      html  css  js  c++  java
  • 单线程、多线程、协程、多进程对比_python

    一、同时执行10个任务的执行快慢

     1 from multiprocessing import freeze_support
     2 freeze_support()
     3 import gevent
     4 import time
     5 import threading
     6 import multiprocessing
     7 
     8 start_time=time.time()
     9 def task(pid):
    10     """
    11     Some non-deterministic task
    12     """
    13     gevent.sleep(1)
    14     print('Task %s done' % pid)
    15 
    16 if __name__ == '__main__': #多线程不加这个要报错,还有from multiprocessing import freeze_support
    17     #单线程
    18     for i in range(1, 10):
    19         task(i)
    20     single_time=time.time()
    21 
    22 
    23     #协程
    24     g_list=[]
    25     for i in range(1,10):
    26         g=gevent.spawn(task,i)
    27         g_list.append(g)
    28     for i in g_list:
    29         i.join()
    30     gevent_time=time.time()
    31 
    32 
    33     #多线程
    34     t_list=[]
    35     for i in range(1,10):
    36         t=threading.Thread(target=task,args=(i,))
    37         t.start()
    38         t_list.append(t)
    39     for i in t_list:
    40         i.join()
    41     thread_time=time.time()
    42 
    43     #多进程
    44 
    45     #mul_start=time.time()
    46     p_list=[]
    47     for i in range(1,10):
    48         p=multiprocessing.Process(target=task,args=(i,))
    49         p.start()
    50         p_list.append(p)
    51     for i in p_list:
    52         i.join()
    53     mulprocess_time=time.time()
    54 
    55 
    56     print(
    57         '''
    58         单线程执行时间:%s
    59         协程执行时间:%s
    60         多线程执行时间:%s
    61         多进程执行时间:%s
    62         '''%(single_time-start_time,gevent_time-single_time,thread_time-gevent_time,mulprocess_time-thread_time))
    63     

    最终执行结果:

     在这个IO任务相对较多的情况下,协程>多线程>多进程>单线程

  • 相关阅读:
    SDN第4次上机作业
    SDN第三次作业
    SDN第三次上机作业
    SDN第二次上机作业
    SND第二次作业
    【Beta Scrum】冲刺!4/5
    【Beta Scrum】冲刺! 3/5
    【Beta Scrum】冲刺! 2/5
    【Beta Scrum】冲刺! 1/5
    SDN第二次上机作业
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/12443536.html
Copyright © 2011-2022 走看看