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()
原文地址:https://www.cnblogs.com/erchun/p/13280225.html