协程

def consumer():
    while True:
        x = yield
        print('处理了数据:',x)

def producer():
    c = consumer()
    next(c)
    for i in range(10):
        print('生产了数据:',i)
        c.send(i)
producer()

 

from greenlet import greenlet

def eat():
    print('eating start')
    g2.switch()
    print('eating end')
    g2.switch()

def play():
    print('playing start')
    g1.switch()
    print('playing end')

g1 = greenlet(eat)
g2 = greenlet(play)
g1.switch()

 

from gevent import monkey;monkey.patch_all()
import time
import gevent

def eat():
    print('eating start')
    time.sleep(1)
    print('eating end')

def play():
    print('playing start')
    time.sleep(1)
    print('playing end')

g1 = gevent.spawn(eat)
g2 = gevent.spawn(play)
g1.join()
g2.join()

 

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

def eat():
    print(threading.currentThread().getName())
    print('eating start')
    time.sleep(1)
    print('eating end')

def play():
    print(threading.currentThread().getName())
    print('playing start')
    time.sleep(1)
    print('playing end')

g1 = gevent.spawn(eat)
g2 = gevent.spawn(play)
g1.join()
g2.join()

 

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

def task():
    time.sleep(1)
    print(123456)

def sync():
    for i in range(10):
        task()

def async():
    g_lst = []
    for i in range(10):
        g = gevent.spawn(task)
        g_lst.append(g)
    gevent.joinall(g_lst)
# sync()
async()

 

from gevent import monkey;monkey.patch_all()
from urllib.request import urlopen
import gevent

def get_url(url):
    response = urlopen(url)
    content = response.read().decode('utf-8')
    return len(content)

g1 = gevent.spawn(get_url,'http://www.baidu.com')
g2 = gevent.spawn(get_url,'http://www.sogou.com')
g3 = gevent.spawn(get_url,'http://www.taobao.com')
g4 = gevent.spawn(get_url,'http://www.hao123.com')
g5 = gevent.spawn(get_url,'http://www.cnblogs.com')
gevent.joinall([g1,g2,g3,g4,g5])
print(g1.value)
print(g2.value)
print(g3.value)
print(g4.value)
print(g5.value)

 

from gevent import monkey;monkey.patch_all()
import socket
import gevent

def talk(conn):
    conn.send(b'hello')
    print(conn.recv(1024).decode('utf-8'))
    conn.close()

sk = socket.socket()
sk.bind(('',8080))
sk.listen()

while True:
    conn,addr = sk.accept()
    gevent.spawn(talk,conn)
sk.close()

 

posted @ 2018-09-11 16:01  Woowo  阅读(94)  评论(0编辑  收藏  举报