什么是多任务
1.多任务概念
2.多任务实现
3.并行和并发
1.多任务概念
什么叫多任务呢? 简单地说,就是操作系统可以同时运行多个任务,打个比方,你一边再用浏览器上网,一边在听MP3,一边再用word赶作业,这就是多任务。
现在,多核CPU已经非常普及了,但是,即便是过去的单核CPU,也可以执行多任务,由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢?
2.多任务实现
答案就是 时间片轮转。
操作系统轮流让各个任务交替执行,任务1执行0.01s,切换到任务2,任务2执行0.01s,再切换到任务3,执行0.01s …这样反复执行下去。
从内里来看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,从表面来看 我们感觉就是所有任务都在同时执行。
真正的并行执行多任务只能在多核CPU上实现(每个CPU执行一个任务,太浪费了),但是正常情况下由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。
3.并行和并发
并行:真的多任务,每个CPU只执行一个任务。
并发:假的多任务,时间片轮转。
此图为并发。
thread模块基本使用
import time
import threading
def text1():
for i in range(5):
print("----text1-----")
time.sleep(1)
def text2():
for i in range(10):
print("----text2-----")
time.sleep(1)
def main():
t1 = threading.Thread(target= text1)
t2 = threading.Thread(target= text2)
t1.start()
t2.start()
if __name__ == "__main__":
main()