将指针附加到pthread

时间:2019-04-23 09:29:17

标签: c pthreads

在我的程序中,我有一个称为clock_thread的结构,这对我的线程系统至关重要。它基本上是一个线程,以恒定的速率执行操作。

有时某些功能需要与clock_thread同步,但是为此,它们需要当前的clock_thread。我无法在参数上传递clock_thread。我知道可以通过pthread获取当前的pthread_self(),但是我不知何故需要将指向pthread结构的clock_thread附加指针。

我目前知道的唯一方法是拥有一个全局数组,该数组跟踪所有clock_thread,并在需要时将每个pthread的{​​{1}}与当前 clock_threadpthread

例如,pthread_equal确实不断调用方法clock_thread,该方法在理论上可以做任何事情。 do_stuff()的唯一目的就是调用函数,它与函数的功能无关。然后,此函数可以调用clock_thread,它需要更改另一个clock_thread的状态。因此,它需要知道当前的perform_write,但是clock_thread不需要完全通过其逻辑传递当前的do_stuff()。在实函数中,clock_thread代码要复杂得多,并且由于样式选择,我无法将当前的do_stuff作为参数传递。

clock_thread

有没有更好的方法可以做到这一点?我想尽可能避免使用全局变量。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,因为do_something()函数知道它在哪个线程中(它具有指向的另一个结构)。 perform_read()现在将当前的clock_thread作为参数