zoukankan      html  css  js  c++  java
  • python实现多线程

    参考

    https://www.cnblogs.com/luyuze95/p/11289143.html

    import threading
    import urllib3
    import jsonpath
    from requests import request
    from ABtest.guid import GetGuid
    
    # 解决认证报错
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    
    
    class ABTest:
    
        def ab_test_result(self, ab_name):
            url = "http:xxx"
            headers = {"Content-Type": "application/json"}
            ori_data = {
                "channel": "cl-abtest-api",
                "apiVersion": "1.0",
                "postData": {"testNames": [
                    "zjctesti",
                    "zjctestu"
                ],
                    "deviceId": ""}
            }
            ori_data["postData"]["deviceId"] = GetGuid().get_guid()
            # print(ori_data)
            response = request(method="post", url=url, headers=headers, json=ori_data, verify=False)
            res = response.json()
            group_name = jsonpath.jsonpath(res, "$..[?(@.name=='{}')].result".format(ab_name))[0]
            # print(group_name)
            group_name2 = group_name["groupName"]
            # print(group_name2)
            res_headers = response.headers
            RequestId = res_headers["RequestId"]
            # print(RequestId)
            return group_name2
    
        def check_ab_result(self, num, ab_name, index_0_name, index_1_name, index_2_name, index_3_name):
            group_name_list = []
            for i in range(num):
                group_name = self.ab_test_result(ab_name)
                group_name_list.append(group_name)
            group_name_list_length = len(group_name_list)
            print("group_name_list_length:{}".format(group_name_list_length))
            index_0_length = group_name_list.count(index_0_name)
            index_1_length = group_name_list.count(index_1_name)
            index_2_length = group_name_list.count(index_2_name)
            index_3_length = group_name_list.count(index_3_name)
            print(index_0_length, index_1_length, index_2_length, index_3_length)
            percent_0 = "{:.6f}".format(index_0_length / group_name_list_length)
            percent_1 = "{:.6f}".format(index_1_length / group_name_list_length)
            percent_2 = "{:.6f}".format(index_2_length / group_name_list_length)
            percent_3 = "{:.6f}".format(index_3_length / group_name_list_length)
            result = "{}:{},{}:{},{}:{},{}:{}" 
                .format(index_0_name, percent_0, index_1_name, percent_1, index_2_name, percent_2, index_3_name, percent_3)
            print(result)
            return result
    
    
    if __name__ == "__main__":
        abtest = ABTest()
        # result = abtest.check_ab_result(5, "zjctestu", "11", "22", "", None)
        t1 = threading.Thread(target=abtest.check_ab_result, args=(100, "zjctestu", "11", "22", "", None))
        t2 = threading.Thread(target=abtest.check_ab_result, args=(100, "zjctestu", "11", "22", "", None))
        t1.start()
        t2.start()
     t1 = threading.Thread(target=方法名(不加括号), args=(方法传入的参数))
     t1.start()
  • 相关阅读:
    基于windows的mysql读写分离和amoeba配置
    windows环境下mysql主从配置
    Mysql主从报错锦集
    Nginx流控
    windows_windows下的rsync
    Kafka+ZooKeeper高可用集群部署
    通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布
    Redis性能指标监控
    MongoDB用户权限管理
    ZooKeeper原理详解及常用操作
  • 原文地址:https://www.cnblogs.com/erchun/p/13280225.html
Copyright © 2011-2022 走看看