zoukankan      html  css  js  c++  java
  • Python协程的使用

    import time
    
    #使用装饰器测试协程的运行时间
    def func(fun):
        def wapper(*args,**kwargs):
            start=time.time()
            fun(*args,**kwargs)
            end=time.time()
            print(end-start)
        return wapper
    
    
    #生产者消费者模式
    def consumer():
        r = ''
        while True:
            n = yield r
            if not n:
                return
            print('[CONSUMER] Consuming %s...' % n)
            r = '200 OK'
    
    @func
    def produce(c):
        c.send(None)
        n = 0
        while n < 5:
            n = n + 1
            print('[PRODUCER] Producing %s...' % n)
            r = c.send(n)
            print('[PRODUCER] Consumer return: %s' % r)
        c.close()
    
    c = consumer()
    produce(c)

    协程不是多线程的一种,它只是在一个线程内切换不同的函数去执行,这样就可以节省线程切换的时间,是程序执行效率大大提高。

  • 相关阅读:
    hdu 4258 Covered Walkway
    hdu 2337 Escape from Enemy Territory
    二分查找
    hdu 2335 Containers
    最大流 Dinic
    进程和并发编程
    黏包
    socket
    网络编程
    异常处理
  • 原文地址:https://www.cnblogs.com/lzh1118/p/7846040.html
Copyright © 2011-2022 走看看