c - 我们如何检查我们的程序多线程是否在我们的程序中工作?

标签 c linux multithreading performance

我有源代码并且在该代码中启用了多线程。我用 ps -eLf 命令检查了它显示的线程数列表,但我认为负载没有分布在所有线程中。所以我想知道我们如何检查负载是否分布在所有线程中。

根据我的说法,完整的负载将转到单线程。

其实我想提高我的代码的性能。

我使用的是 RHEL5.4 linux 操作系统。编程语言是 C。

如果有人知道,请告诉我......

谢谢

最佳答案

运行这个:

ps -p PID_OF_YOUR_PROCESS -L -o pid,tid,pcpu,state,nlwp,args

你会看到这样的输出:

  PID   TID %CPU S NLWP COMMAND
 2305  2305  3.5 S    5 /usr/bin/cinnamon
 2305  2325  0.0 S    5 /usr/bin/cinnamon
 2305  2326  0.0 S    5 /usr/bin/cinnamon
 2305  2327  0.0 S    5 /usr/bin/cinnamon
 2305  2721  0.0 S    5 /usr/bin/cinnamon

TID 是线程 ID。您可以看到每个线程的 cpu 百分比。

希望这能回答您的问题。

关于c - 我们如何检查我们的程序多线程是否在我们的程序中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119686/

相关文章:

linux - 能否合并多个 .gz 文件,以便将它们提取到一个文件中?

java - 多线程变量访问

c - 如何为文件系统实现B+树?

c - 奇数 C 函数定义不是 K&R

c - 在 c 中重新打开 stdin、stdout 或 stderr

linux - I2C 设备驱动程序错误 [TCA6408 I/O 扩展器]

multithreading - TStringList.IndexOf() 导致线程崩溃

java - RxJava的clear(CompositeDisposable)方法内部是如何工作的?

c - 验证数组的数字

c - 这两个参数在 typedef 中意味着什么?