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

一、进程和线程

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

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

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

二、threading模块

  1. 函数

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

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

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

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

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

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

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

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

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

四、Thread类的子类对象

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

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

run不能直接通过对象主动调用,否则任务都会在主线程中执行

五、join

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

六、queue

注意:在子线程中调用的函数没有返回值(有返回值也没有办法获取)

Queue提供的是线程安全的序列,专门用来保存不同线程中产生的数据,同时提供线程相关操作

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页