| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 阅读Python官网文档对threading.Thread线程的介绍 -> 正文阅读 |
|
[Python知识库]阅读Python官网文档对threading.Thread线程的介绍 |
Python线程模块threading:https://docs.python.org/zh-cn/3/library/threading.html 1、Python的threading模块定义了许多类,该模块的设计基于Java的线程模型。但是,在Java里面,锁和条件变量是每个对象的基础特性,而在Python里面,这些被独立成了单独的对象(threading.Lock()锁,threading.Condition()条件变量)。Python 的? 2、threading.Thread类表示运行在一个独立控制的线程中的一项活动。有两种方式指定活动:传递可调用对象给threading.Thread构造函数,也就是threading.Thread(group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)中的target。或在threading.Thread的子类中覆盖run()方法。子类出了构造方法外不该覆盖其他方法。换句话说,子类只能覆盖threading.Thread的__init__()方法(都继承了当然要覆盖并传递调用父类构造)和run()方法。 对my_thread1 = threading.Thread(target=my_func)的用法,没有继承threading.Thread类,则threading.Thread.run()方法默认调用self.target()。如果继承了threading.Thread类,当然可以在覆盖的DerivedThread.__init__(target=my_func,args=my_args,kwargs=my_kwargs)构造器中传递target并首先调用threading.Thread.__init__(target=myfunc,args=my_args,kwargs=my_kwargs),也有机会重写run方法。 标准的(即thread.Thread.run)? 3、当线程对象一但被创建,其活动一定会因调用线程的? 4、一旦线程活动开始,该线程会被认为是 '存活的' 。当它的?
5、其他线程(相对的主线程)可以调用一个线程(子线程引用)的? 6、线程有名字。名字可以传递给构造函数,也就是threading.Thread(group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)中的name,也可以通过?
7、如果? 8、一个线程可以被标记成一个“守护线程”。 这个标识的意义是,当剩下的线程都是守护线程时,整个 Python 程序将会退出。 初始值继承于创建线程。 这个标识可以通过? 注解:守护线程在程序关闭时会突然关闭。他们的资源(例如已经打开的文档,数据库事务等等)可能没有被正确释放。如果你想你的线程正常停止,设置他们成为非守护模式并且使用合适的信号机制,例如:? 守护线程我理解为比如监视线程、消费者线程,当生产者线程都结束时,剩下的监视线程、消费者线程都没有存在的必要,可以立即结束了。 有个 "主线程" 对象;这对应Python程序里面初始的控制线程。它不是一个守护线程。
9、"虚拟线程对象" 是可以被创建的。这些是对应于“外部线程”的线程对象(我理解是对外部线程的引用,但Python对其封装的方法有限,不能监测外来线程的终结),它们是在线程模块外部启动的控制线程,例如直接来自C代码。虚拟线程对象功能受限;他们总是被认为是存活的和守护模式,不能被? 10、class? 调用这个构造函数时,必需带有关键字参数。参数如下: group?应该为? target?是用于? name?是线程名称。默认情况下,由 "Thread-N" 格式构成一个唯一的名称,其中?N?是小的十进制数。 args?是用于调用目标函数的参数元组。默认是? kwargs?是用于调用目标函数的关键字参数字典。默认是? 如果不是? 如果子类型重载了构造函数,它一定要确保在做任何事前,先发起调用基类构造器(
开始线程活动。 它在一个线程里最多只能被调用一次。它安排对象的? 如果同一个线程对象中调用这个方法的次数大于一次,会抛出?
代表线程活动的方法。 你可以在子类型里重载这个方法。 标准的? 10.3?? 等待,直到线程终结。这会阻塞调用这个方法的线程(相对主线程),直到被调用? 当?timeout?参数存在而且不是? 当?timeout?参数不存在或者是? 一个线程可以被? 如果尝试加入当前线程会导致死锁(同一线程自我阻塞、两个线程相互阻塞,后者指:主线程在构造子线程时将自身引用传递给子线程,子线程的线程函数中有阻塞等待传入的父线程,然后父线程再阻塞等等待这个子线程),?
10.4? 只用于识别的字符串。它没有语义。多个线程可以赋予相同的名称。 初始名称由构造函数设置。
这个线程的 '线程标识符',如果线程尚未开始则为? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 15:00:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |