python-day09-进程与线程的区别,多线程,守护线程

一、线程和进程的区别

线程是用来执行的指令集,进程是资源的集合。

线程共享内存,进程独立内存。

线程启动速度快,进程启动速度慢,但是在运行速度没有可比性。

线程间的数据可以直接交流,进程间的数据不能直接交流。

线程间可以互相操作,且线程间的相互影响不会因为线程结束而结束。

进程是个厂房,线程是流水线。厂房里每有流水线就没有存在的意义。

 

二、python 多线程原理

首先,程序中隐藏着一条主线程,主线程不需要调用就会沿着程序自上而下解释性的执行。

当开启多线程后,主线程和多线程同时触发,通常情况下,主线程会仍然保持自上而下的执行,主线程是不会在意其他线程的运行状态,所以会出现,代码在下面的那一段程序先执行结束。

然而主线程并不是真的不在乎其他线程的运行状态,当主线程的代码运行结束了,主线程会原地等待,知道其他线程的工作结束才会关闭线程。另外可以通过非主线程的join()方法,来使得在程序中途,主线程等待此非主线程运行结束,再执行下面的代码。

当然,在定义了多线程后,若将此线程贴上“守护线程”的标签,则此线程的地位下降一个等级,表现为,主线程若是结束了,不在等待守护线程是否结束,都会强制关闭程序。

本质上python的多线程是伪多线程,虽然会调用多个核心,却只让一个线程工作,这个线程可以在核心之间切换。

 

posted @ 2021-05-16 17:12  初出茅庐的菜鸡  阅读(144)  评论(0)    收藏  举报