• 异步调用与回调机制


    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time    : 2018/6/19 14:05
    # @File    : 异步调用与回调机智.py

    """

    同步调用和阻塞不一样:

    同步调用不管是io型程序还是计算型程序,执行一个程序之后就是等待,

    阻塞是io型特有的,因为io耗时而形成了阻塞现象

    """

    # 1、同步调用:

    提交完任务后,就在原地等待任务执行完毕,拿到结果,在执行下一行代码,导致程序串行执行

    # from concurrent.futures import ThreadPoolExecutor
    # import time
    # import random
    #
    #
    # def la(name):
    #     print('%s is laing' % name)
    #     time.sleep(random.randint(3, 5))
    #     res = random.randint(7, 13)*'#'
    #     return {'name': name, 'res': res}
    #
    #
    # def weigh(shit):
    #     name = shit['name']
    #     size = len(shit['res'])
    #     print('%s la l <%s> kg' % (name, size))
    #
    #
    # if __name__ == '__main__':
    #     pool = ThreadPoolExecutor(13)  # 限制池中数量
    #     shit1 = pool.submit(la, 'alex').result()
    #     weigh(shit1)
    #
    #     shit2 = pool.submit(la, 'wupeiqi').result()
    #     weigh(shit2)
    #
    #     shit3 = pool.submit(la, 'yuanhao').result()
    #     weigh(shit3)
    View Code

    # 2、异步调用:

    提交完任务后,不等待任务执行完毕,

    from concurrent.futures import ThreadPoolExecutor
    import time
    import random
    
    
    def la(name):
        print('%s is laing' % name)
        time.sleep(random.randint(3, 5))
        res = random.randint(7, 13)*'#'
        return {'name': name, 'res': res}
    
    
    def weigh(shit):
        shit = shit.result()  # 结果
        name = shit['name']
        size = len(shit['res'])
        print('%s la l <%s> kg' % (name, size))
    
    
    if __name__ == '__main__':
        pool = ThreadPoolExecutor(13)  # 限制池中数量
        pool.submit(la, 'alex').add_done_callback(weigh)  # 前面任务执行完毕,自动触发weigh函数,把前面对象(pool.submit(la, 'alex'))传入
        pool.submit(la, 'wupeiqi').add_done_callback(weigh)
        pool.submit(la, 'yuanhao').add_done_callback(weigh)
    View Code




  • 相关阅读:
    jmeter录制APP脚本
    jmeter的JDBC Request接口测试
    jmeter的webservice接口测试(SOAP/XML-RPC Request)
    jmeter接口测试小结
    jmeter普通的接口测试
    jmeter插件之PerfMon
    jmeter解决中文乱码问题
    session和cookies
    jmeter快速入门
    Python 基础
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9198413.html
Copyright © 2020-2023  润新知