进程与线程的区别:
-
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
-
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
-
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
-
调度和切换:线程上下文切换比进程上下文切换要快得多。
多线程:
多线程工作实例1:实现类似并发执行的效果,实际上并非并发,是多个线程间进行上下文的切换
程序中,启动了50个线程,每个线程在执行run方法时,均sleep两秒,在程序结束时,实际上总体时间仅仅用了2秒多。
守护线程:设置子线程为守护线程时,当主线程结束时,子线程即结束,不会等待子线程执行完毕
守护线程实例:
程序中,以守护线程的形式启动20个子线程,在主线程结束时子线程同时结束,即使子线程尚未执行完毕。程序总花费时间为1s多。
线程锁:
由于多线程是同时执行的,多线程在修改同一个数据时,会出现修改后的数据不正确的情况。可以使用线程锁实现线程串行修改数据。
递归锁:
Rlock 递归锁,它相当于一个字典,记录了锁的门与锁的对应值,当开门的时候会根据对应来开锁.
信号量
Original: https://www.cnblogs.com/sunnytomorrow/p/13526177.html
Author: NorthFeng
Title: Python–线程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590703/
转载文章受原作者版权保护。转载请注明原作者出处!