比较两个远程线程?

时间:2013-07-13 19:08:51

标签: c linux multithreading multiprocessing

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

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

欢迎任何建议!! :D

1 个答案:

答案 0 :(得分:0)

很难说不知道你打算如何进行这种同步。这两个程序是否相互通信和/或第三个监控pgm?

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

在匹配的两个程序(或第三个)中使用关联容器,如地图

  • 来自两个程序的pthread线程ID(例如pthread_self()以获取tids)
  • linux thread ids(例如gettid()

或者您可以使用pthread_setname_np()pthread_getname_np()。您可以使用它们为两个程序中的每个线程赋予相同的名称,这可能在某些消息传递方案中变得有用。如果您正在发送消息,也可以使用线程名称中的__FILE____LINE____FUNCTION__(c99中的__func__)宏。

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

相关问题