Für Prozess-/Thread-/Ctrip-/asynchrone Inhalte habe ich Zeit, sie vorzubereiten und zu schreiben. Ich habe die for-Schleife so langsam verwendet, dass ich bezweifle, dass es viele Szenarien geben wird, die dies erfordern im Leben verwendet werden, also habe ich es ein wenig getrennt
Werfen wir zuerst einen Blick auf die Multithread-Anforderungsschnittstelle
imoprt threading # 首先运用到threading模块 class BrushGifts: # 以下是两个相同的接口 send_gift_room_one()是送礼的接口 # 也就是说我想完成的状态是A送B B送A 两个用户同时想对方赠送礼物 def giftt(self, uid, recvUid, giftId): """ 送礼接口 :param uid: 送礼用户 :param recvUid: 收礼用户 :param giftId: 礼物道具id :return: """ VoiceRoom().send_gift_room_one(uid, recvUid, giftId) def giftt_a(self, uid, recvUid, giftId): # 与上面的接口相同 不多做叙述 # 没什么区别 就是写着好理解俩接口的概念 VoiceRoom().send_gift_room_one(recvUid, uid, giftId) if __name__ == '__main__': # 因为我的账号是储存在yaml文件内 所以需要先倒出需要用户的uid列表 # 送礼人与收礼人分别倒出 uid_list = YamlHandler(YamlThePath().voice_room_cpNew).get_uid_list(10) rUid_list = YamlHandler(YamlThePath().number_old).get_scope_uid(1500, 10) # 这里暂时先展示最简单的AB同时互送~ for (i, j) in zip(uid_list, rUid_list): # target内需要传入方法名 不要带()因为带括号就等于去调用了该方法 会直接开始执行 # args内传入输入带入的参数 可以按顺序来 也可以整理成元组或字典接收 t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620)) # 两个threading.Thread就是我请求并发两个接口 t2 = threading.Thread(target=BrushGifts().giftt, args=(j, i, 51620)) # t1.start()为执行 t1.start() t2.start()
Hauptthread:
Das Konzept des Hauptthreads besteht darin, ihn auszuführen Wenn ich mit der Ausführung der letzten Codezeile t2.start() fertig bin, wechselt der Hauptthread in den Wartezustand und der Hauptthread wird beendet, nachdem er auf das Ende des Unterthreads gewartet hat
Sub- Thread:
Das Konzept des Unterthreads besteht darin, dass ich ihn hier während der Ausführung des Hauptthreads ausgeführt habe. Dies geschieht natürlich über die Methode t1.start (), um den Aufruf durchzuführen
t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620))
Zu diesem Zeitpunkt Das System öffnet einen Unterthread zum Ausführen und Aufrufen der Methode BrushGifts().giftt
Der Hauptthread führt t1.start() und t2.start aus, während er ausgeführt wird (), aber er wird nicht auf sie warten Die Ausführung wird beendet. Der Hauptthread wird fortgesetzt, daher werden t1.start() und t2.start() gleichzeitig angefordert. Wenn beide untergeordneten Prozesse enden, wird der Der Hauptthread wird beendet~
Da der Hauptthread t1.start() und t2.start() Zeile für Zeile ausführt und Python keine Parallelität im genauen Sinne erreichen kann, ist diese Methode manchmal nicht anwendbar, wenn die Datengeschwindigkeit sehr hoch ist
Funktion: Wird zum wiederholten Einfügen von Daten verwendet
1. Laden Sie zuerst Python herunter und geben Sie dann Python in cmd ein, um festzustellen, ob die globale Installation erfolgreich ist
2. Laden Sie PcIdea herunter
3. Herunterladen 4. Überprüfen Sie das Anforderungsnetzwerk
Drücken Sie F12
Textanforderung anzeigen
import requests #导入requests包 import random import json import time # response = requests.get('http://www.baidu.com') # print(response.status_code) # 打印状态码 # print(response.url) # 打印请求url # print(response.headers) # 打印头信息 # print(response.cookies) # 打印cookie信息 # print(response.text) #以文本形式打印网页源码 # print(response.content) #以字节流形式打印 # print(response.json()) AddCarURL = "http://localhost:10086/jeecg-boot/cable/insurance/add" AddCarCookies = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjkwOTUyNzcsInVzZXJuYW1lIjoiYWRtaW4ifQ.Kn1jB5gUkCdnszSVxnjVVKtRMbx_WJSVZW6G-yJaid8" randomStr = "ABCDEFGHIJKLMNOPQRST" randomInsurance = ["泰康人寿","阳光保险","新华保险","太平人寿","同方全球人寿","友邦保险"," 招商仁和","平安保险"] randomBox = ["石鲜仓储","明顺仓储","雄星仓储","金盛仓储","旺恒仓储","中豹仓储","飞翔仓储","速发仓储","春天仓储"] sess = requests.session() headers = { "X-Access-Token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjkxMDUyMjUsInVzZXJuYW1lIjoiYWRtaW4ifQ.EUAjJYACel8QHFw4AFERIaDjXZJTwOOyp8uncqx3Jps", "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19041", "Referer":"http://localhost:3000/cable/VehicleList", "Origin":"http://localhost:3000", "Host":"localhost:10086", "Content-Type":"application/json; charset=utf-8" } a1=(2017,1,1,0,0,0,0,0,0) #设置开始日期时间元组(1976-01-01 00:00:00) a2=(2019,3,16,23,59,59,0,0,0) #设置结束日期时间元组(1990-12-31 23:59:59) a3=(2019,3,16,0,0,0,0,0,0) #设置开始日期时间元组(1976-01-01 00:00:00) a4=(2021,8,16,23,59,59,0,0,0) #设置结束日期时间元组(1990-12-31 23:59:59) start=time.mktime(a1) #生成开始时间戳 end=time.mktime(a2) #生成结束时间戳 start1=time.mktime(a3) #生成开始时间戳 end2=time.mktime(a4) #生成结束时间戳 # for i in range(10): # t=random.randint(start,end) #在开始和结束时间戳中随机取出一个 # date_touple=time.localtime(t) #将时间戳生成时间元组 # date=time.strftime("%Y-%m-%d",date_touple) #将时间元组转成格式化字符串(1976-05-21) # # t1 = random.randint(start1,end2) # date_touplen=time.localtime(t1) #将时间戳生成时间元组 # dateOne=time.strftime("%Y-%m-%d",date_touplen) #将时间元组转成格式化字符串(1976-05-21) # print(date + " " +dateOne) def addCar(num:int): # {"type": "2", "carryingCapacity": "3吨", "license": "粤A888", "engineNumber": "123456", "state": 0} # {"vehicleId": "2", "insuraName": "人寿保险", "insurancePolicy": "UY1254SD5492W", "insuranceDateBegin": "2021-08-16", # "insuranceDateEnd": "2021-08-31", "strongPolicy": "UY1254SD5492E", "strongDateBegin": "2021-07-01", # "strongDateEnd": "2021-08-28", "license": "2"} for i in range(num): t = random.randint(start, end) # 在开始和结束时间戳中随机取出一个 date_touple = time.localtime(t) # 将时间戳生成时间元组 date = time.strftime("%Y-%m-%d", date_touple) # 将时间元组转成格式化字符串(1976-05-21) t1 = random.randint(start1, end2) date_touplen = time.localtime(t1) # 将时间戳生成时间元组 dateOne = time.strftime("%Y-%m-%d", date_touplen) # 将时间元组转成格式化字符串(1976-05-21) datas = {} datas["vehicleId"] = "2" datas["insuraName"] = random.choice(randomInsurance) datas["insurancePolicy"] = random.choice(randomStr) + str(random.randint(10000, 99999)) + random.choice(randomStr) + str(random.randint(10000, 99999)); datas["insuranceDateBegin"] = date datas["insuranceDateEnd"] = dateOne datas["strongPolicy"] = random.choice(randomStr) + str(random.randint(10000, 99999)) + random.choice(randomStr) + str(random.randint(10000, 99999)); datas["strongDateBegin"] = date datas["strongDateEnd"] = dateOne datas["license"] = i print(datas) res=requests.post(url=AddCarURL, data=json.dumps(datas), headers=headers) print(res.text) addCar(100)
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass Python-Multithread mehrere Schnittstellen mit Parametern anfordert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!