我正在实现一个以锁步方式执行两个程序的应用程序。每个系统调用都是一个同步点。应用程序可能有多个线程,因此我需要明确地识别它们中的每一个,以便将第一个应用程序中的线程执行与第二个应用程序中相同线程的执行同步。
有没有办法确定两个远程线程是否正在执行相同的代码或函数?
欢迎任何建议!! :D
答案 0 :(得分:0)
很难说不知道你打算如何进行这种同步。这两个程序是否相互通信和/或第三个监控pgm?
无论如何,至少有3种可能性:
在匹配的两个程序(或第三个)中使用关联容器,如地图
pthread_self()
以获取tids)gettid()
)或者您可以使用pthread_setname_np()
和pthread_getname_np()
。您可以使用它们为两个程序中的每个线程赋予相同的名称,这可能在某些消息传递方案中变得有用。如果您正在发送消息,也可以使用线程名称中的__FILE__
,__LINE__
和__FUNCTION__
(c99中的__func__
)宏。
这是我的(黑匣子)建议!