linux 是一个多用户多任务的操作系统。通过SSH可以多人同时远程操作一台电脑,同时打开多个客户端就是多任务。
多任务:多个函数一起跑。
vim 01-没有多任务的程序.py
思路:
调用main函数,在main函数里调用两个函数
.
for i in rang(5): rang(5)表示从0到4循环五次,要想5秒,就用time.sleep(1),表示延时1秒,用到time就导入time模块,即可达到每秒执行一次
,然后在for和time.sleep代码之间插入一行print代码,表示第一次开始“正在唱菊花茶”,持续1秒,然后开始第二次,再延时1秒,达到唱歌5秒种的代码效果
书写规范:
函数和函数之间空两行,函数和类之间也空两行
命令:
yyp复制def sing函数粘贴为一个跳舞的函数
dd删除整行,u是撤销
dw删除光标所在的单词
import time
def sing():
"""唱歌5秒种"""
for i in rang(5):
print("正在唱----菊花茶----")
time.sleep(1)
def dance():
"""跳舞5秒种"""
for i in rang(5):
print("-----正在跳舞----")
time.sleep(1)
def main():
sing()
dance()
if __name__ == "__main__"
main()
以上代码的执行效果:先把唱歌5秒执行完成,再执行跳舞5秒,整个程序运行下来需要10秒钟,调整代码,应该5秒内同时完成唱歌和跳舞。
cp 01-没有多任务的程序.py 02-多任务-线程-demo.py
02-多任务-线程-demo.py**
要想实现两个函数一起执行,需要导入threading模块
用里面的Thread方法,将main函数中调用的其他函数的代码替换掉
import threading
import time
def sing():
"""唱歌5秒种"""
for i in rang(5):
print("正在唱----菊花茶----")
time.sleep(1)
def dance():
"""跳舞5秒种"""
for i in rang(5):
print("-----正在跳舞----")
time.sleep(1)
def main():
t1 = threading.Thread(target=sing)
t2 = threading.Thread(target=dance)
t1.start()
t2.start()
if __name__ == "__main__"
main()
多任务实现原理:
单核CUP:CPU类似汽车里的发动机,电脑里最核心的芯片(在电路板上焊着,CPU的好坏直接影响电脑的快慢,CPU是一个硬件,电脑上所有的程序都运行在CPU上),单核CPU意味着同一时间只做一件事情,双核cup同时做两件事,现在一般都是四核CPU。
安卓手机越狱后可以模拟定位,搜索附近的人
单核CPU虽然同一时间只能做一件事,但是人为看到的是同时执行了很多事,因为每个程序轮流运行极短的时间,0.00001s,从而实现“一起执行”,假的多任务,时间片轮转。
如果四核CPU,四个程序不用轮流切换,可以同时运行,叫做“并行”,是真的多任务。
如果有8个任务,在四核CPU上运行,假的多任务,叫做“并发”。任务数多于cup核数是并发,任务数小于CPU是并行。