首页 > 编程语言 > 详细

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

时间:2018-08-12 22:43:35      阅读:169      评论:0      收藏:0      [点我收藏+]

举例:

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.........

 

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

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

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