python-day09-进程与线程的区别,多线程,守护线程
一、线程和进程的区别
线程是用来执行的指令集,进程是资源的集合。
线程共享内存,进程独立内存。
线程启动速度快,进程启动速度慢,但是在运行速度没有可比性。
线程间的数据可以直接交流,进程间的数据不能直接交流。
线程间可以互相操作,且线程间的相互影响不会因为线程结束而结束。
进程是个厂房,线程是流水线。厂房里每有流水线就没有存在的意义。
二、python 多线程原理
首先,程序中隐藏着一条主线程,主线程不需要调用就会沿着程序自上而下解释性的执行。
当开启多线程后,主线程和多线程同时触发,通常情况下,主线程会仍然保持自上而下的执行,主线程是不会在意其他线程的运行状态,所以会出现,代码在下面的那一段程序先执行结束。
然而主线程并不是真的不在乎其他线程的运行状态,当主线程的代码运行结束了,主线程会原地等待,知道其他线程的工作结束才会关闭线程。另外可以通过非主线程的join()方法,来使得在程序中途,主线程等待此非主线程运行结束,再执行下面的代码。
当然,在定义了多线程后,若将此线程贴上“守护线程”的标签,则此线程的地位下降一个等级,表现为,主线程若是结束了,不在等待守护线程是否结束,都会强制关闭程序。
本质上python的多线程是伪多线程,虽然会调用多个核心,却只让一个线程工作,这个线程可以在核心之间切换。
浙公网安备 33010602011771号