【发布时间】:2019-12-15 14:05:35
【问题描述】:
我创建了一个小烧瓶应用程序来从页面下载图像和文本,这可能需要很长时间,所以 我想并行执行我的请求。我创建线程任务。我希望这个任务能够从网站下载文本或图像。我将我的任务保存在工人列表中。 但是我想选择一个线程将执行的方法,然后启动整个线程。 如何将我的方法传递给线程运行方法()?这会是一个子守护线程吗?
import threading
import time
workers = []
class SavePage:
def get_text(self):
print("Getting text")
def get_images(self):
print("Getting images")
class Task(threading.Thread):
def __init__(self):
super().__init__()
self.save_page = SavePage()
def get_text_from_page(self):
self.save_page.get_text()
def get_images_from_page(self):
self.save_page.get_images()
if __name__ == '__main__':
task = Task()
task.get_images_from_page() # Why this executes, when I didn't put task.start() ?
# Moreover, is this really threaded? or just uses a method from class Task?
workers.append(task) # I want this list to be empty, after job is finished
print("".join(str(worker.is_alive()) for worker in workers)) #
print(workers)
【问题讨论】:
标签: python multithreading flask