后浪小萌新Python --- 多线程

tech2022-12-11  95

一、进程和线程

正在的运行的应用程序就是进程,进程和进程之间均运算在其专门的内存空间里面,相互独立不干扰

线程是进程执行任务的基本单元,一个进程默认有一个线程,这个线程叫主线程。

如果进程中需要主线程以外的线程(子线程),需要手动创建

二、threading模块

函数

threading是Python标准库中提供的专门处理多线程问题的模块。

threading.current_thread() - 获取当前线程

threading.active_count() - 获取当前进程的活跃线程个数

threading.enumerate() - 获取当前进程中所有的线程对象

Thread类 - Thread类的对象就是线程对象(程序需要多少个子线程,就需要创建多少个Thread类的对象)

三、添加线程 - 创建Thread对象

添加线程就是创建Thread的对象

创建线程 Thread(target=函数,args=元组) - 创建线程对象 target - 函数,需要在子线程执行的任务对应的函数 args - 元组,元组中的元素就是在子线程中调用target对应的函数传递的参数

启动线程 线程对象.start() - 在子线程中调用target对应的函数

四、Thread类的子类对象

线程对象可以是Thread类的对象,也可以是Thread类的子类对象

注意:在run方法中实现需要在子线程中执行的任务。实现任务对应的功能需要额外的数据,不能传参,通过添加对象属性来提供数据 run不能直接通过对象主动调用,否则任务都会在主线程中执行

五、join

线程对象.join() - join后面的操作会在指定线程结束之后才执行

六、queue

注意:在子线程中调用的函数没有返回值(有返回值也没有办法获取) Queue提供的是线程安全的序列,专门用来保存不同线程中产生的数据,同时提供线程相关操作

最新回复(0)