golang控制并发最常用的就是sync.WaitGroup那一套
现在使用python gevent实现类似功能
至于async, await那一套 需要递归写下去, 很烦, 遂放弃
差距在于python不能利用多核, 只是可以让cpu在遇到io操作的时候做点其他的事, 减少总io时间
举一个比较常见的用例, 循环执行一个函数, 并发执行
from gevent import monkey
monkey.patch_all()
import time
import gevent
class Strategy:
def produce(self):
tasks = [
gevent.spawn(self.produce_data, symbol) for symbol in range(10)
]
gevent.joinall(tasks)
def produce_data(self, symbol):
print("begin", symbol)
time.sleep(2)
print("end", symbol)
def run():
startTime = time.time()
strategy = Strategy()
strategy.produce()
print(time.time() - startTime)
if __name__ == "__main__":
run()