我的线程化python代码有什么问题?
这是我的密码:我的线程化python代码有什么问题?,python,multithreading,Python,Multithreading,这是我的密码: import os import requests from bs4 import BeautifulSoup import time, random from time import sleep from concurrent.futures import ProcessPoolExecutor, as_completed from concurrent.futures import ThreadPoolExecutor from concurrent.futures i
import os
import requests
from bs4 import BeautifulSoup
import time, random
from time import sleep
from concurrent.futures import ProcessPoolExecutor, as_completed
from concurrent.futures import ThreadPoolExecutor
from concurrent.futures import Future
import concurrent.futures
from threading import Thread
def task():
start_time = time.time()
with open("url.txt") as f:
for line in f:
line2 = line.rstrip("\r\n")
print(line2 + " Hello")
sleep(1)
#rechi = requests.get("http://"+line2, verify = False, timeout = 0.5)
#con = BeautifulSoup(rechi.content, "html.parser")
#title = con.title
#print(title)
print("My program took", time.time() - start_time, "to run")
def main():
executor = ThreadPoolExecutor(20)
future = executor.submit(task)
print(future.result())
main()
使用线程执行程序所需的时间与不使用线程执行程序所需的时间相同。。。有人能告诉我我做错了什么吗?如果并行运行多个任务,多线程只会使程序更快。 您的程序在单个线程中运行一次
task
。即使并行运行了多次任务
,程序输出的时间也只是完成一次任务
所需的时间,而不是整个程序运行所需的时间。
这会打印主任务的时间并多次提交任务
:
def main():
start_time = time.time()
executor = ThreadPoolExecutor(20)
futures = []
futures.append(executor.submit(task))
futures.append(executor.submit(task))
for i in futures:
print(i.result())
print("main took {} seconds".format(time.time()-start_time))
我理解。。。如何并行运行task()多次?我应该在代码中添加什么?