zoukankan      html  css  js  c++  java
  • concurrent

    #--coding:utf-8--
    import os,sys
    def excutecmd(cmd):
    print('cmd:::{}'.format(cmd))
    try:
    print('1command is {} and pid is {}'.format(cmd, os.getpid()))
    ret = os.system(cmd)
    print('2command is {} and pid is {}'.format(cmd,os.getpid()))
    if ret ==0:
    # os._exit(0)
    # print('ccc')
    return ret
    else:
    # os._exit(1)
    # print('bbb')
    return ret
    except Exception as e:
    # os._exit(2)
    # print('aaa')
    return e

    def multithreadExcute(cmdlist = [],defaultprocessnum = 3):
    result = []
    from concurrent import futures
    with futures.ThreadPoolExecutor(max_workers=defaultprocessnum) as excutor:
    for cmd in cmdlist:
    ret = excutor.submit(excutecmd,cmd)
    result.append(ret.result())
    return result

    def printline(result):
    print('printline::{}'.format(result))
    pass

    def multiprocessExcute(cmdlist = [],defaultprocessnum = 2):
    result = []
    import multiprocessing
    pool = multiprocessing.Pool(processes=2)
    for cmd in cmdlist:
    ret = pool.apply_async(func=excutecmd,args=(cmd,),callback=printline,error_callback=printline)
    result.append(ret)
    pool.close()
    pool.join()
    return [i.get() for i in result]

    if __name__ == '__main__':
    cmdlist = ['ping www.ifeng.com','ping www.google.com','ping www.huawei.com']
    ret = multiprocessExcute(cmdlist)
    print(ret)
    print('done!')
  • 相关阅读:
    寒假学习报告05
    寒假学习报告04
    微信推送信息,支付宝支付接口
    Vue组件生成依赖文件,contentype
    redis之列表字典操作
    drf版本控制redis基础
    drf分页器,url控制器,解析器,响应器
    drf认证权限频率
    drf视图认证组件
    drf序列化组件
  • 原文地址:https://www.cnblogs.com/billhsu2009/p/8988136.html
Copyright © 2011-2022 走看看