比较两个远程线程?

标签 c linux multithreading multiprocessing

我正在实现一个同步执行两个程序的应用程序。每个系统调用都是一个同步点。一个应用程序可能有多个线程,因此我需要明确地识别每个线程,以便将第一个应用程序中线程的执行与第二个应用程序中同一线程的执行同步。

有没有办法识别两个远程线程是否正在执行相同的代码或函数?

欢迎提出任何建议! :D

最佳答案

好吧,很难说不知道您打算如何进行此同步。这两个程序是否相互通信和/或第三个监视 pgm?

无论如何,至少有 3 种可能性:

在匹配的两个程序(或第三个程序)中使用像 map 这样的关联容器

  • 来自两个程序的 pthread 线程 ID(例如,使用 pthread_self() 获取 TID)
  • Linux 线程 ID(例如 gettid())

或者您可以使用pthread_setname_np()pthread_getname_np()。您可以使用它们为两个程序中的每个线程指定相同的名称,这可能在某些消息传递场景中变得有用。您还可以将 __FILE____LINE____FUNCTION__(c99 中的 __func__)宏与如果您正在发送消息,则线程名称。

这是我的(黑匣子)建议!

关于比较两个远程线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633334/

相关文章:

java - 如何在 Swing 游戏上通知多线程事件

javascript - 如何实现 SharedArrayBuffer 和 Atomics 的并行?

c - 单个生产者和多个消费者

c - 从 C 中的文件读取时覆盖结构数组

c - mbed uvisor 和以太网接口(interface)溢出

linux - 网络设备的 ACL

python - 如何监控USB设备插入?

c - popen/pclose 的替代品?

我们可以将连接的结果分配给变量吗?

linux - 如何强制禁用 intel_pstate?即使在 grub 中使用 intel_pstate=disable 选项,intel_pstate 也会在重新启动时启用