多线程

1.什么是多线程

多进程和多线程都是用于提高程序的效率

多进程:核心是多道技术,本质上就是切换加保存状态,当IO比较多的时候可以提高

效率

什么是多线程? 程序的运行线路

线程相当于流水线,包含了程序的具体执行步骤

进程相相当于一个车间

进程中包含了运行该程序所需要的所有资源,进程是一个资源单位,线程是CPU的
最小执行单位

每一个进程一旦被创建就默认开启了一条线程,这条线程称之为主线程

进程与线程的关系

进程包含线程,线程依赖进程

2.为什么使用线程?

为了提高程序效率,使用线程而不用进程的原因是:进程对操作系统的资源消耗非常高

线程如何提高效率:多线程可以使CPU在一个进程内部切换,聪哥提高CPU的占用率

3.如何使用多线程?

两种开启线程的方式 1.实例化Thread 2.继承Thread类 覆盖run方法

什么时间需要开启多线程? 1.当程序当中遇到IO的时候

当程序中是纯计算任务的时候,不需要开启多线程,开启之后也无法提高效率

4.进程和线程使用区别?

1.进程对操作系统的资源消耗非常高,而线程低(比进程低10-100倍)

2.在同一个进程中,多个线程之间资源是共享的

5.守护线程(同一个进程间)

守护线程:会在所有非守护线程结束后结束

守护进程: 守护进程会在被守护进程死亡之后死亡

同一个进程,可以有多个守护线程

6.线程中常用属性


Thread实例对象的方法
# isAlive(): 返回线程是否活动的。
# getName(): 返回线程名。
# setName(): 设置线程名。

threading模块提供的一些方法:
# threading.currentThread(): 返回当前的线程变量。
# threading.enumerate(): 返回一个包含正在运行的线程的list.正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
# threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

7. 什么时候使用互斥锁?

当多个进程或多个线程需要修改同一份数据时,可能会造成数据的错乱,所以必须得加

8. 信号量

也是一种锁,特点是:可以设置数据被几个线程(进程)共享的次数

普通锁一旦加锁则意味着这数据只能同时被一个线程使用,信号量可以让这个数据在

同一时间让多个线程使用

学习,学习,学习! 学习是为了更好的未来,不要让别人瞧不起你,加油!!!
原文地址:https://www.cnblogs.com/yangyufeng/p/10210640.html