一、基础知识
\qquad 线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
\qquad 单核CPU在同一时刻只能运行一个线程,电脑上能同时运行多个程序,是因为CPU在运行的时候,CPU随机选取一个程序运行,然后在随机选取另一个程序运行,由于CPU每次选取程序运行的时间极短,所以认为感觉到的是多个程序一起运行。
\qquad 当任务数大于CPU核数时成为并发,当任务数大于或者等于CPU核数时,称为并行。
二、案例代码
\qquad 1) 编写程序打印5行1,5行2
import time
def test1():
for i in range(5):
print("---1---")
time.sleep(1)
def test2():
for i in range(5):
print("---2---")
time.sleep(1)
def main():
test1()
test2()
if __name__ == "__main__":
main()
\qquad 上述代码运行的结果是打印一行“—1---”后等1秒,再打印一行"—1---",这样打印5行"—1---“后,等1秒后继续打印”—2---",再等1秒钟,继续打印"—2---",直至打印5行"—2---",整个过程总