30天学会Python: Day 26-一心多用

同步执行

目前写的程序都是一行接着一行一行执行,这种执行的方式叫做 同步执行

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

>>:  冒险村27 - Concern

PPT in Operating system

在学习并行程序设计之前,我们需要先了解 Program 、 Process 、 Thread 的定义...

Day 21 好的自然排序抓住搜寻者的目光

如果说你每天花在广告的预算上有固定的规划,假设今天下午刚好预算已用完,所以当今天有真正有意消费的消费...

【Day24】I2C Master 的实现及验证(最终章)

今天,我们要来完成整个 I2C 的最後一个部份了! 先来看看这个 I2C Master write ...

3 种常用的 Google Maps 嵌入方式

在网页内嵌入地图的需求时常会用到,以下三种是最常见的方法: Google Maps Embed AP...

D26 将config等等隐密资讯另外放置 - yaml

将重要资讯放到yaml内 config.yaml(放在BASE_DIR) --- email: EM...