码迷,mamicode.com
首页 > 编程语言 > 详细

进程 ---线程 --协程的混合

时间:2018-08-12 22:48:58      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:lis   range   join()   get   import   RoCE   process   style   target   

举例:

from gevent import monkey; monkey.patch_all()
import gevent
import multiprocessing
import threading
from multiprocessing import current_process
import time


def gevent_handle():
    print ("\033[1;33;42m now,begin handle gevent %s task.......\033[0m"%threading.current_thread().getName())
    time.sleep(2)
    print("\033[1;31;42m now,end handle gevent %s task.......\033[0m"%threading.current_thread().getName())

def thread_handle():
    print("now,begin handle thread %s task........."%threading.current_thread().getName())
    g=gevent.spawn(gevent_handle)
    g.join()
    print("now,end handle thread %s task........."%threading.current_thread().getName())
def process_handle():
    print ("now,begin handle process %s task........."%current_process().name)
    t_list = []
    for i in range(5):
        t = threading.Thread(target=thread_handle,)
        t.start()
        t_list.append(t)
    for i in t_list:
        i.join()
    print("now,end handle process %s task........."%current_process().name)
if __name__ == __main__:
    p_list = []
    for i in range(2):
        p = multiprocessing.Process(target=process_handle,)
        p.start()
        p_list.append(p)
    for i in p_list:
        i.join()
    print ("now,every process task handle complete.........")

结果:

now,begin handle process Process-1 task.........
   now,begin handle thread Thread-1 task.........
      now,begin handle gevent DummyThread-3 task.......
   now,begin handle thread Thread-2 task.........
      now,begin handle gevent DummyThread-5 task.......
   now,begin handle thread Thread-4 task.........
      now,begin handle gevent DummyThread-7 task.......
   now,begin handle thread Thread-6 task.........
      now,begin handle gevent DummyThread-9 task.......
   now,begin handle thread Thread-8 task.........
      now,begin handle gevent DummyThread-10 task.......
now,begin handle process Process-2 task.........
   now,begin handle thread Thread-1 task.........
      now,begin handle gevent DummyThread-3 task.......
   now,begin handle thread Thread-2 task.........
      now,begin handle gevent DummyThread-5 task.......
   now,begin handle thread Thread-4 task.........
      now,begin handle gevent DummyThread-7 task.......
   now,begin handle thread Thread-6 task.........
      now,begin handle gevent DummyThread-9 task.......
   now,begin handle thread Thread-8 task.........
      now,begin handle gevent DummyThread-10 task.......
      now,end handle gevent DummyThread-3 task.......
      now,end handle gevent DummyThread-5 task.......
      now,end handle gevent DummyThread-7 task.......
      now,end handle gevent DummyThread-9 task.......
      now,end handle gevent DummyThread-10 task.......
   now,end handle thread Thread-1 task.........
   now,end handle thread Thread-2 task.........
   now,end handle thread Thread-4 task.........
   now,end handle thread Thread-6 task.........
   now,end handle thread Thread-8 task.........
now,end handle process Process-1 task.........
      now,end handle gevent DummyThread-3 task.......
      now,end handle gevent DummyThread-5 task.......
      now,end handle gevent DummyThread-7 task.......
      now,end handle gevent DummyThread-9 task.......
      now,end handle gevent DummyThread-10 task.......
   now,end handle thread Thread-1 task.........
   now,end handle thread Thread-2 task.........
   now,end handle thread Thread-4 task.........
   now,end handle thread Thread-6 task.........
   now,end handle thread Thread-8 task.........
now,end handle process Process-2 task.........
now,every process task handle complete.........

 

进程 ---线程 --协程的混合

标签:lis   range   join()   get   import   RoCE   process   style   target   

原文地址:https://www.cnblogs.com/mmyy-blog/p/9465271.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!