首先科普一个问题:多任务:两个事情同时执行;一个人同时执行两个事情的方式主要通过手头处理一件事情,另一件事情自动跑着,边扫地边用洗衣机洗衣服。或者根本用的不是一个器官……边跑步边听音乐。
计算机处理两件事情,因为计算机处理事情用的是CPU,要处理事情需要CPU在两件事情间穿插,不停的切换
此时要谈到CPU的执行任务方式:并发和并行
并发:两件事情同时触发,穿插执行,此时的情况是CPU个数(几个核)<任务个数,一个CPU穿插着执行几件事情
并行:一个CPU只作一件事情
- 本文通过python实现多线程,主要分为几个部分:
- 多线程完成多任务初步
- 继承线程类,实例化线程类完成多线程
- 守护线程
- 线程共享全局变量
- 抢占资源
实现多线程代码:
import threading
import time
def main():
t1 = threading.Thread(target=demo1)
t2 = threading.Thread(target=demo2)
t1.start()
t2.start()
def demo3():
for i in range(3):
print('----demo3----')
def demo1():
for i in range(3):
print(f'----demo1----{i}')
time.sleep(1)
t3 = threading.Thread(target=demo3)
t3.start()
def demo2():
for i in range(3):
print(f'----demo2----{i}')
time.sleep(1)
if __name__ == '__main__':
main()
print('------1--------')
#主线程在子线程执行完之前不会结束
这就是一个简单的多线程