二进制安装
安装包
tar -zxvf gevent-20.6.2.tar.gz
cd gevent-20.6.2
python3 setup.py install
命令安装
pip3 install gevent==20.6.1
协程
import gevent
def geventOne(name):
"""
Returns string res
"""
return "success return %s" % name
def geventTwo(name):
"""
Returns string res
"""
return "success return %s" % name
res = gevent.joinall([gevent.spawn(geventOne,"geventOne"),gevent.spawn(geventTwo,"geventTwo")])
for index,item in enumerate(res):
print(index)
print(item.value)
import gevent
def geventOne(name):
"""
Returns string res
"""
gevent.sleep(3)
print("success return %s" % name)
ll = ["aa","bb"]
res = gevent.joinall([gevent.spawn(geventOne,i) for i in ll])
gevent.joinall(res)
多线程
threads = [threading.Thread(target=geventOne,args=("test threading",))]
[g.start() for g in threads]
[g.join() for g in threads]
# 接受返回值
# coding:utf-8
class CustomTask:
def __init__(self):
self._result = None
def run(self, *args, **kwargs):
result = args[0]
self._result = result
def get_result(self):
return self._result
ct = CustomTask()
t = threading.Thread(target=ct.run, args=("11",))
t.start()
t.join()
result = ct.get_result()
print(result)