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()