我有多个线程在运行(pthreads api),每个线程都有自己的定时器,在一定的时间间隔后调用一个函数处理程序(int signum)。当这些线程调用处理程序并在函数处理程序中时,我如何知道哪个线程调用它?是否需要特定于线程的数据?
答案 0 :(得分:1)
您可以使用pthread_self()
函数获取当前线程的ID。
答案 1 :(得分:0)
如果您只想知道哪个线程正在执行,那么pthread_self()
就可以获得您唯一的线程ID。
那就是说,不知道你的计时器实现,如果你需要的不仅仅是一个ID,我只需要将pthread从一个对象中传递给它自己的上下文作为处理程序的参数。这样您就无需借助pthread_setspecific()/pthread_getspecific()
即可传入任何数据