zoukankan      html  css  js  c++  java
  • 一个简单的python多协程实例

    import xlrd,threading, requests,threading,json,time,math
    import numpy as np
    import gevent
    from queue import Queue
    products = Queue()
    result = Queue()
    def excel():
        wb = xlrd.open_workbook(r'E:/python/xt_user.xlsx')
        sheet = wb.sheet_by_name('xt_user')
        for a in range(sheet.nrows):
            cells = sheet.row_values(a)
            products.put(cells)  
    def consumer():
        while not products.empty():
                obj = products.get()
                res = thread_test(obj)
                print(res)
                result.put(res)
    def thread_test(object):
         url = ''
         r = requests.post(url, data=json.dumps({}), headers={'Content-Type':'application/json'})
         #print(r.json())
         return r.json()
    excel()
    g1 = gevent.spawn(consumer)




    g2 = gevent.spawn(consumer)
    g3 = gevent.spawn(consumer)
    g1.join()
    g2.join()
    g3.join()
    g4 = gevent.spawn(consumer)
    g5 = gevent.spawn(consumer)
    g6 = gevent.spawn(consumer)
    g4.join()
    g5.join()
    g6.join()
    time.sleep(10)
    success = 0
    fail = 0
    while not result.empty():
                obj = result.get()
                if obj['status'] == 200 :
                    print(obj)
                    success += 1
                else: 
                    print('请求失败')
                    fail += 1    
    print('成功个数:', success)
    print('失败个数:', fail)




  • 相关阅读:
    Ajax函数
    javascript 重定向和打开新窗口(ZZ)
    asp.net 学习
    dojo杂谈
    Deciding between COALESCE and ISNULL in SQL Server
    从 Twitter 运维技术经验可以学到什么
    重新安装ASP.NET命令
    SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
    SQL Server 2005/2008/2012中应用分布式分区视图
    数据库运维原则
  • 原文地址:https://www.cnblogs.com/huangguojin/p/13225193.html
Copyright © 2011-2022 走看看