c-指示处理程序(计时器)调用时的线程



我有多个线程在运行(pthreads-api),每个线程都有自己的定时器,在一定的时间间隔后调用函数处理程序(int-signum)。当这些线程调用处理程序和函数处理程序时,我如何知道是哪个线程调用了它?是否需要特定于线程的数据?

您可以使用pthread_self()函数来获得当前线程的ID。

如果您只想知道哪个线程正在执行,那么pthread_self()就可以获得您唯一的线程id。

也就是说,在不知道定时器实现的情况下,如果您需要的不仅仅是一个ID,我只需要在对象中从其自身的上下文中将pthread传递作为处理程序的参数。这将允许您在不使用pthread_setspecific()/phread_getspecific()的情况下传入任何数据

最新更新