目录
一、协程
gevent
# coding:utf-8
import gevent
def f1():
for i in range(5):
print("func1-%s"%i)
gevent.sleep(0.1)
def f2():
for j in range(5):
print("func2 -----%s"%j)
gevent.sleep(0.2)
gevent.joinall([gevent.spawn(f1),gevent.spawn(f2)])
# coding:utf-8
import gevent,requests
from datetime import datetime
def func(url):
print('%s GET:%s' %(datetime.now(), url))
resp = requests.get(url)
t=datetime.now()
l=len(resp.text)
print('%s %d bytes'% (t, l))
url1='https://www.python.org/'
url2='https://www.githubs.cn/'
g1=gevent.spawn(func,url1)
g2=gevent.spawn(func,url2)
gevent.joinall( [g1,g2])
# coding:utf-8
import gevent
from gevent.lock import Semaphore
sem = Semaphore(3)
def f1():
for i in range(5):
#sem.acquire()
print('run f1-', i)
#sem.release()
gevent.sleep(1)
def f2():
for i in range(5):
sem.acquire()
print('run f2----', i)
sem.release()
gevent.sleep(0.3)
t1 = gevent.spawn(f1)
t2 = gevent.spawn(f2)
gevent.joinall([t2,t1])