【问题标题】:Thread affinity in linuxlinux中的线程亲和性
【发布时间】:2015-12-29 11:13:44
【问题描述】:

我在 c 中创建了一个应用程序,它创建了 4 个线程。如何通过终端和代码检查哪个线程在哪个核心上运行。

【问题讨论】:

  • 你试过pthread_getaffinity_np() 吗? man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.html
  • 通常,操作系统将线程分配到不同的 CPU,因此它现在运行的任何 CPU 可能是也可能不是它在毫秒内运行的同一个 CPU。但是,您可以使用 Linux 支持的 POSIX 线程来控制线程关联,或者您可以使用例如像htop 这样的工具,用于将线程/进程分配给 CPU。
  • @SergeiKulik pthread_getaffinity_np() 总是返回 0,即使我使用 pthread_setaffinity_np() 设置亲和力。
  • 手册页对那个特定的返回值有什么要说的?

标签: linux multithreading pthreads affinity


【解决方案1】:

我找到了有关如何使用终端检查的答案。
/home# for i in $(pgrep applicationName);执行 ps -mo pid,tid,fname,user,psr -p $i;done

【讨论】:

    猜你喜欢
    • 2017-12-06
    • 2011-01-15
    • 2012-11-07
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    相关资源
    最近更新 更多