0

I am implementing an application which executes two programs in lockstep. Each system call is a synchronization point. An application might have more than one thread, thus I need to identify unequivocally each of them in order to synchronize the execution of a thread from the first application with the execution of the same thread in the second application.

Is there a way to identify if two remote threads are executing the same code or function?

Every suggestion is welcomed!! :D

4

1 回答 1

0

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

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

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

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

或者您可以使用pthread_setname_np()and pthread_getname_np()。您可以使用它们为两个程序中的每个线程赋予相同的名称,这在某些消息传递场景中可能会变得有用。如果您正在发送消息,您还可以结合线程名称使用__FILE__,__LINE____FUNCTION__(__func__在 c99 中) 宏。

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

于 2013-07-13T20:23:13.740 回答