线程的调用以及join方法
进程是操作系统最重要的概念
无论你启动多少个线程、你有多少个cpu,python在执行过程的时候会淡定的在同一时刻只允许一个线程运行
import threading 线程
t1=threading.Threadi() 开一个子线程对象
t1.start() 做一件事情,处理一个任务
心得:进程和线程都是过程,区别在于一个抽象一个具体
子线程和主线程是并驾齐驱
一个进程内的所有线程感知上是一起运行的
t.join() t不执行完,主线程不执行,不往下执行,其它子线程对象来执行属于主线程
setDaemon方法和继承式调用
函数、类、模块有作用域权限
扫描二维码关注公众号,回复:
6386933 查看本文章
t.setDaemon(True) 注意:一定在start之前设置
守护进程:子线程是否守护主线程,你有我有,你无我无
继承式调用run():定义每个线程要运行的函数
复习
程序需要通过切换实现并发,则需要进程
进程在内存中是独立的,并发消耗时间比线程多百倍左右
进程是做资源管理的,是管理线程的,程序真正执行的是线程
主线程执行完进程不一定结束,可能要等子线程
threading.enumerate() 返回一个包含正在运行的线程的list,正在运行指线程启动后、结束前,不包括启动前和终止后的线程
import threading import time def music(): print('开始听音乐%s'%time.ctime()) time.sleep(3) print('结束听音乐%s' % time.ctime()) def game(): print('开始打游戏%s' % time.ctime()) time.sleep(5) print('结束打游戏%s' % time.ctime()) if __name__ == '__main__': t1=threading.Thread(target=music) t2=threading.Thread(target=game) t1.start() # t1.join() t2.start() # t2.join() print(threading.enumerate()) print('结束')