【发布时间】:2021-12-18 15:33:04
【问题描述】:
这段代码需要我大约 11 秒:
def task(numbers):
print(f"Starting")
for number in numbers:
number**number
task(range(10000))
task(range(10000))
这和我一样:
def task(numbers):
for number in numbers:
number**number
start = time()
t1 = threading.Thread(target=task, args=(range(10000),))
t2 = threading.Thread(target=task, args=(range(10000),))
t1.start()
t2.start()
t1.join()
t2.join()
end = time()
print(end - start)
如果我使用 2 个线程,为什么这段代码不会占用一半时间?
【问题讨论】:
-
这能回答你的问题吗? python multi-threading slower than serial?
-
你的
task是 cpu-heavy,而不是 i/o-heavy,所以线程并没有加速任何事情。请改用多处理。
标签: python python-3.x multithreading