单核CPU:时间片轮转
并行:CPU的个数大于等于任务数 真的多任务执行
并发:CPU的个数小于任务数 假的多任务
知识点:
多线程共享全局变量
创建线程的两种方法:
1.创建子线程方法 调用函数 Thread(target=函数名)
1 # 导入threading包 2 import threading 3 import time 4 5 6 def sing(): 7 for i in range(5): 8 print("------唱------%d----" % i) 9 time.sleep(1) 10 11 # 如果创建的Thread时指定的函数,运行结束,那么意味着 这个子线程结束了 12 13 def dance(): 14 for i in range(5): 15 print("------跳------%d----" % i) 16 time.sleep(1) 17 18 19 def main(): 20 # threading.Thread(target=函数名) 注意 函数名后面不能带() 有()是调用 21 # 创建线程对象 22 t1 = threading.Thread(target=sing) 23 t2 = threading.Thread(target=dance) 24 25 # 开启子线程 让线程开始执行 创建线程 26 t1.start() 27 t2.start() 28 29 # 查看当前运行的线程 threading.enumerate() 返回值是个列表 30 print(threading.enumerate()) 31 32 # 查看当前线程数 len() 33 print(len(threading.enumerate()))
2,创建子线程类
1 import threading 2 import time 3 4 5 # 创建子线程类 6 class MyThread(threading.Thread): 7 # 必须定义run()方法 8 def run(self): 9 pass
10 11 12 if __name__ == '__main__': 13 # 创建对象 14 t = MyThread() 15 # 启动线程 start()里边会调用run()方法 16 t.start()