当一个线程占用100%的CPU时,多线程应用程序挂起

阿拉萨尔

该应用程序已使用Python 2.7编写并在Ubuntu 14.04上运行。

它运行50个线程,一个线程占用了所有CPU(htop中显示了100%的使用率),而其他线程则永远没有机会继续执行。看来调度程序无法更改为其他线程。那是正常的吗?

我应该尝试使用进程而不是线程吗?我在想,因为使用多处理,我可以使用更多的CPU。

用户名

https://wiki.python.org/moin/GlobalInterpreterLock

是的,在您的情况下多处理可能是实现事物的推荐方法。或者,您可以尝试重写挂起的线程,以便它不会占用太多CPU(取决于挂起的原因,很可能算得上什么)。或至少time.sleep(0)不时按@ user5402的建议运行。

另外,您可能会发现有用的asyncio

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在WinDbg中运行!ntsdexts.locks时,多线程应用程序仅显示一个线程。如何知道其他导致死锁的线程?

单线程CPU上的多线程应用程序?

如何使用MPI创建一个单进程但多线程的MFC GUI应用程序?

Oracle,一个用户(应用程序连接)多并发会话(多线程连接)

我正在制作一个Java多线程应用程序

如何在多线程应用程序中达到100%的CPU使用率?

多线程程序在条件等待时挂起

在单线程应用程序中,是否只有一个线程是内核线程?

在此多线程Java应用程序中,似乎只有一个线程像顺序程序一样在运行?

我正在制作一个多线程应用程序来处理图像,但是顺序版本更快,为什么?

代号为一个应用程序的线程计数

调试Java应用程序IntelliJ时挂起线程

Android线程:屏幕关闭时应用程序挂起

使用多线程时,应用程序意外关闭

Java多线程程序不占用大量CPU

多线程Windows Phone应用程序

分析多线程Java应用程序

多线程应用程序产生的进程

WinAPI多线程应用程序

来自Tkinter应用程序的多线程

同步方法多线程应用程序

除非使用printf,否则多线程测试C应用程序将挂起

我需要制作一个多线程程序(python)

当其中一个线程中有未捕获的异常时,Python多线程程序不会退出

如何在多线程应用程序中存储线程

为什么单线程应用程序占用多核并限制cpu使用率

返回上一个视图时,应用程序崩溃-线程1:EXC_BAD_ACCESS

创建MenuFlyout时,“该应用程序调用了一个已编入不同线程的接口”

从不同线程开始下一个活动时,Android应用程序崩溃