详解详解python中的线程与线程池中的线程与线程池
主要介绍了python线程与线程池,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
学习价值,需要的朋友们下面随着小编来一起学习学习吧
线程线程
进程和线程
什么是进程?
进程就是正在运行的程序, 一个任务就是一个进程, 进程的主要工作是管理资源, 而不是实现功能
什么是线程?
线程的主要工作是去实现功能, 比如执行计算.
线程和进程的关系就像员工与老板的关系,
老板(进程) 提供资源 和 工作空间,
员工(线程) 负责去完成相应的任务
特点特点
一个进程至少由一个线程, 这一个必须存在的线程被称为主线程, 同时一个进程也可以有多个线程, 即多线程
当我们我们遇到一些需要重复执行的代码时, 就可以使用多线程分担一些任务, 进而加快运行速度
线程的实现
线程模块线程模块
Python通过两个标准库_thread和threading, 提供对线程的支持 , threading对_thread进行了封装。
threading模块中提供了Thread , Lock , RLock , Condition等组件。
因此在实际的使用中我们一般都是使用threading来实现多线程
线程包括子线程和主线程:
主线程 : 当一个程序启动时 , 就有一个线程开始运行 , 该线程通常叫做程序的主线程
子线程 : 因为程序是开始时就执行的 , 如果你需要再创建线程 , 那么创建的线程就是这个主线程的子线程
主线程的重要性体现在两方面 :
1. 是产生其他子线程的线程
2. 通常它必须最后完成执行, 比如执行各种关闭操作
Thread类类
常用参数说明
参数参数 说明说明
target 表示调用的对象, 即子线程要执行的任务, 可以是某个内置方法, 或是你自己写的函数
name 子线程的名称
args 传入target函数中的位置参数, 是一个元组, 参数后必须加逗号
常用实例方法常用实例方法
方法方法 作用作用
Thread.run(self) 线程启动时运行的方法, 由该方法调用 target参数所指定的函数
Thread.start(self) 启动进程, start方法就是区帮你调用run方法
Thread.terminate(self) 强制终止线程
Thread.join(self, timeout=None) 阻塞调用, 主线程进行等待
Thread.setDaemon(self, daemonic) 将子线程设置为守护线程, 随主线程结束而结束
Thread.getName(self, name) 获取线程名
Thread.setName(self, name) 设置线程名