多任务-线程
1.如今的电脑cup已经是多核了,可以实现多任务同时完成。
但是在之前,cpu仍然处于单核状态时,同样也可以实现多任务,那么是如何完成的呢?
其实是,让多任务交替执行,由于cpu的执行速度太快了,多以让人们看起来是同时在执行,其实只是伪多任务罢了。
2.此时,就牵涉到了一个并行的问题,在什么样的情况下,能够实现并行?
只有真正的在多核cpu中,才可以实现并行,但是,当任务数量远远多于核数时,操作系统就会将多任务轮流调度到多核上进行处理。
3.并发与并行
并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)
并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的
4.线程
创建线程: t = threading.Thread(target=saySorry) target=
的内容是我们的动作函数
启动线程:只有当线程执行 t.start( ) , 才会创建一个线程,并开始执行
5.多线程中,主线程和子线程的执行问题
当多线程存在时,主线程会让子线程执行结束才会结束
查看线程数量:length = len(threading.enumerate())