**
人爲切換:
**
from greenlet import greenlet
import time
def task1(temp):
print("====")
print("執行任務A")
str2=b.switch()
time.sleep(1)
print("執行任務A完成"+str(str2)+str(temp))
def task2():
print("執行任務B")
c.switch()
time.sleep(5)
print("執行任務B完成")
a.switch("789")
def task3():
print("執行任務C")
a.switch("456")
time.sleep(1)
print("執行任務C完成")
if __name__ == '__main__':
a=greenlet(task1)
b=greenlet(task2)
c=greenlet(task3)
#a.run("123")
a.switch("123")
**
自動切換一
**
from gevent import monkey,spawn
import time
monkey.patch_all()
def task1():
print("執行任務A")
time.sleep(2)
print("執行任務A完成")
def task2():
print("執行任務B")
time.sleep(5)
print("執行任務B完成")
def task3():
print("執行任務C")
time.sleep(1)
print("執行任務C完成")
def task4():
print("執行任務D")
time.sleep(1)
print("執行任務D完成")
if __name__ == '__main__':
a=spawn(task1)
b=spawn(task2)
c=spawn(task3)
d = spawn(task4)
a.join()
b.join()
c.join()
d.join()
**
自動切換二
**
import gevent
from gevent import monkey
import requests
import urllib.request
import time
monkey.patch_all()
def my_down(*url):
response=urllib.request.urlopen(url[0])
content=response.read()
# response=requests.get(url[0])
# content = response.text()
print("文件的路徑{},文件大小{}".format(url[0], len(content)))
print("{}=====".format(url[0]))
if __name__ == '__main__':
urls = ["http://www.baidu.com","http://www.qq.com","http://www.taobao.com"]
a = gevent.spawn(my_down, *(urls[0], 10))
b = gevent.spawn(my_down, *(urls[1], 9))
c = gevent.spawn(my_down, *(urls[2], 8))
gevent.joinall([a, b, c])