目前写的程序都是一行接着一行一行执行,这种执行的方式叫做 同步执行
print("1")
print("2")
print("3")
因为同时间只有一个地方在执行,所以只有一个执行绪
同时有多个地方在执行称为 非同步 或是 异步 执行
当需要同时处理多项任务,或是其中一项任务较为耗时(例如同时上传档案和更新上传进度的画面),就可以采用异步执行
但异步执行不一定会让整体执行变快,只是执行的顺序变成不是一行接着下一行,而是依执行速度而定
透过内建的 threading
模组,可以建立更多执行绪,达到异步执行的效果
新增的执行绪要执行的内容要先定义成函式
import threading
def task():
print('2-1')
print('2-2')
print('2-3')
threading.Thread()
建立执行绪,用 start()
开始执行绪,join()
表示等到新执行绪结束,在开始执行接下来的内容
import threading
def task():
print('2-1')
print('2-2')
print('2-3')
thread = threading.Thread(target=task)
thread.start()
thread.join()
print("End")
用 time
模组中的 time.sleep()
暂停执行绪,模拟两个执行时间差异极大的情况
import threading
def task():
print('2-1')
time.sleep(0.5)
print('2-2')
time.sleep(0.5)
print('2-3')
time.sleep(0.5)
thread = threading.Thread(target=task)
thread.start()
print('1-1')
time.sleep(3)
print('1-2')
time.sleep(3)
print('1-3')
time.sleep(3)
thread.join()
print("End")
<<: Day30-结赛感言之 This is not the end
在学习并行程序设计之前,我们需要先了解 Program 、 Process 、 Thread 的定义...
如果说你每天花在广告的预算上有固定的规划,假设今天下午刚好预算已用完,所以当今天有真正有意消费的消费...
今天,我们要来完成整个 I2C 的最後一个部份了! 先来看看这个 I2C Master write ...
在网页内嵌入地图的需求时常会用到,以下三种是最常见的方法: Google Maps Embed AP...
将重要资讯放到yaml内 config.yaml(放在BASE_DIR) --- email: EM...