你V若A成E风 发表于 2022-6-18 11:01

请教Python如何接入多线程



请教各路大神帮忙给接入个多线程,谢谢,部分代码见下!!!

import json
import requests

url = "http://**********/ischedule/plugins/RenovationTask/renovationTaskCtr/queryForSecondTask.ilf?taskTypeNameEn=lowoptical&start=0&end=999"
headers = {
'Cookie': 'route=960106ac72c2b479725759336514b2b6'
}
response = requests.request("POST", url, headers=headers, data={})
result = json.loads(response.text)
result = result["result"]["taskList"]
for item in result:
url = "http://**********/ischedule/plugins/RenovationTask/renovationTaskPcCtr/autoTesting.ilf?taskType=lowoptical&taskId=" + str(item["taskId"]) + "&lon=117.108988&lat=36.183565&dealResult=3&checkType=0&lowReason=1"
response = requests.request("POST", url, headers=headers, data={})
print(response.text)

蓝风 发表于 2022-6-18 14:00

import json
import requests
import threading

url = "http://**********/ischedule/plugins/RenovationTask/renovationTaskCtr/queryForSecondTask.ilf?taskTypeNameEn=lowoptical&start=0&end=999"
headers = {
    'Cookie': 'route=960106ac72c2b479725759336514b2b6'
}
response = requests.request("POST", url, headers=headers, data={})
result = json.loads(response.text)
result = result["result"]["taskList"]

def func():
    for item in result:
      url = "http://**********/ischedule/plugins/RenovationTask/renovationTaskPcCtr/autoTesting.ilf?taskType=lowoptical&taskId=" + str(
            item) + "&lon=117.108988&lat=36.183565&dealResult=3&checkType=0&lowReason=1"
      response = requests.request("POST", url, headers=headers, data={})
      print(response.text)
if __name__ == '__main__':
    t=threading.Thread(target=func)
    t.start()

蓝风 发表于 2022-6-18 14:01

只需要你把需要多线程的部分写成函数,然后跑起来就好了。

dft2010 发表于 2022-6-18 15:15

蓝风 发表于 2022-6-18 14:01
只需要你把需要多线程的部分写成函数,然后跑起来就好了。

如果多线程的部分涉及到读取TXT参数怎么办~~

蓝风 发表于 2022-6-18 15:16

dft2010 发表于 2022-6-18 15:15
如果多线程的部分涉及到读取TXT参数怎么办~~

是需要不停的读一个文件还是需要多线程读取多个文件?

三滑稽甲苯 发表于 2022-6-18 15:24

本帖最后由 三滑稽甲苯 于 2022-6-18 15:27 编辑

蓝风 发表于 2022-6-18 14:01
只需要你把需要多线程的部分写成函数,然后跑起来就好了。
这个多线程和单线程效率差别不大吧,感觉lz的意思是循环内的一次操作作为单个线程
把改进代码的for循环放在外面就好了

蓝风 发表于 2022-6-18 15:30

三滑稽甲苯 发表于 2022-6-18 15:24
这个多线程和单线程效率差别不大吧,感觉lz的意思是循环内的一次操作作为单个线程
把改进代码的for循环 ...

嗯,我写的这个更适合多任务多线程,如果只是请求那一个操作的话,是可以按你说的那样改的、

蓝风 发表于 2022-6-18 15:41

    for i in range(10):
      t=threading.Thread(target=funcss)
      t.start()

用温柔将我杀死 发表于 2022-6-18 15:43

本帖最后由 用温柔将我杀死 于 2022-6-18 15:50 编辑

好东西学习了

你V若A成E风 发表于 2022-6-18 16:32

蓝风 发表于 2022-6-18 14:01
只需要你把需要多线程的部分写成函数,然后跑起来就好了。

感谢大神,已成功跑起来了!~
页: [1] 2
查看完整版本: 请教Python如何接入多线程