看来很多教程,千篇一律,没什么对比。直接上代码:
自认为通俗易懂的栗子
# 以 list 中添加元素举例
from random import random
from threading import Thread
import time
a, b=[], []
t1 = time.time()
for i in range(0, 10):
time.sleep(1) # 模拟处理时间
a.append(i) # 把添加到 a 的 list 中
print(a) # 打印 list
print(time.time()-t1) #打印处理时间
list a 打印
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
处理时间打印10.00496530532837
# 以 list 中添加元素举例
from random import random
from threading import Thread
import time
a, b=[], []
# 自定义的函数,可以替换成其他任何函数
def task(threadName, number):
time_sleep = random()+1 # 模拟处理时间, 时间长度不一致
time.sleep(time_sleep) # 模拟绘制帧
b.append(number)
print(threadName, time_sleep)
t2 = time.time()
t_list = []
for i in range(0, 10):
t = Thread(target=task, args=("thread_"+str(i), i))
t.start()
t_list.append(t)
for tt in t_list:
tt.join()
print(b)
print(time.time()-t2)
里面线程的打印就不放了
list b 打印[7, 5, 9, 2, 1, 0, 4, 3, 6, 8]
处理时间打印1.8993406295776367
通过对比,很明显多线程时间缩短,但是没有顺序。