之前因为线程内出现异常导致Python部分线程退出,程序以单线程方式运行了好几个星期,浪费了很多时间。
如何查看当前进程有多少个存活线程呢?
方法1)pstree -p 4761(进程ID)。如下截图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/f7a346c8a2c7495fc4bb9b7838593e73.jpeg)
方法2)cat /proc/4761(进程ID)/status。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/ee51b8fc017ca032a8aed77275bf9f2f.jpeg)
方法3)top -p 4761(进程ID),然后按H。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/100f3b956960518c781c62f38ecf23b4.jpeg)
为什么只有1个线程在running呢? 由于
GIL的缘故,Python同时只能使用一个CPU核心,线程间要轮换执行,所以同时最多有一个线程在运行。
看下图,MySQL的多个线程就可以同时处于running状态,因为C++可以使用多个CPU核心。
![](https://i-blog.csdnimg.cn/blog_migrate/b9d9e2819cc51ebf45c4d653d56f96e3.jpeg)