python实现golang sync.WaitGroup类似功能
golang控制并发最常用的就是sync.WaitGroup那一套
现在使用python gevent实现类似功能 也是基于协程
劣势在于python不能利用多核CPU, 而且是非抢占式调度
举一个比较常见的用例, 循环执行一个函数, 并发执行
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()
                    
                
                
            
        
浙公网安备 33010602011771号