python bootstrap_python标准库threading源码解读【六】

本文深入解读Python标准库threading的 Bootstrap过程,重点解析_bootstrap_inner函数,包括线程标识符设置、_tstate_lock锁的获取与释放,以及sys.settrace和profile的系统调用。同时探讨了_tstate_lock在_stop()中的释放情况和join()、is_alive()的交互。

写在开头:这篇文章紧接上文,一定先看它!

讲完这个库最后一部分,“threading”中大部分源码就解读完了。

以后我还会对它经行补充, 比如还有一个更加底层的库“_thread“。

不过得看我以后的研究生生涯过得咋样了 ,:)


目录

  1. _bootstrap(self)
  2. _bootstrap_inner(self),【补充】_stop()

这里要结合前面的文章,了解一下“_tstate_lock”锁的获得和释放过程

还是强调一下,一定先看前面两篇文章:

甘蔗:python标准库threading源码解读【四】​zhuanlan.zhihu.com
3479e17239e60d9b43bc29ff0c96b658.png
甘蔗:python标准库threading源码解读【五】​zhuanlan.zhihu.com
5b4015fb7f5f490ea28762a4ffa6d910.png

1.源码1 _bootstrap(self)

def 

上篇文章说了调用顺序:start -> _bootstra

Fatal Python error: none_dealloc: deallocating None Python runtime state: initialized Thread 0x00004d10 (most recent call first): File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 320 in wait File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\task.py", line 71 in handler_thread File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953 in run File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016 in _bootstrap_inner File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 973 in _bootstrap Current thread 0x0000c918 (most recent call first): File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\task.py", line 83 in handler_thread File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953 in run File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016 in _bootstrap_inner File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 973 in _bootstrap Thread 0x000048e0 (most recent call first): File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 320 in wait File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\task.py", line 71 in handler_thread File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953 in run File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016 in _bootstrap_inner File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 973 in _bootstrap Thread 0x00008af0 (most recent call first): File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 320 in wait File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\task.py", line 71 in handler_thread File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953 in run File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016 in _bootstrap_inner File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\threading.py", line 973 in _bootstrap Thread 0x0000937c (most recent call first): File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\wasyncore.py", line 167 in poll File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\wasyncore.py", line 240 in loop File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\server.py", line 325 in run File "C:\Users\D\u885b\AppData\Local\Programs\Python\Python310\lib\site-packages\waitress\__init__.py", line 19 in serve File "D:\GaPinyc\SQLite_sync_Mysql\center_api\app.py", line 89 in <module> Extension modules: markupsafe._speedups, _mysql_connector (total: 2) PS D:\GaPinyc\SQLite_sync_Mysql\center_api>
最新发布
09-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值