在我的程序中,我有一个称为clock_thread
的结构,这对我的线程系统至关重要。它基本上是一个线程,以恒定的速率执行操作。
有时某些功能需要与clock_thread
同步,但是为此,它们需要当前的clock_thread
。我无法在参数上传递clock_thread
。我知道可以通过pthread
获取当前的pthread_self()
,但是我不知何故需要将指向pthread
结构的clock_thread
附加指针。
我目前知道的唯一方法是拥有一个全局数组,该数组跟踪所有clock_thread
,并在需要时将每个pthread
的{{1}}与当前
clock_thread
与pthread
。
例如,pthread_equal
确实不断调用方法clock_thread
,该方法在理论上可以做任何事情。 do_stuff()
的唯一目的就是调用函数,它与函数的功能无关。然后,此函数可以调用clock_thread
,它需要更改另一个clock_thread的状态。因此,它需要知道当前的perform_write
,但是clock_thread
不需要完全通过其逻辑传递当前的do_stuff()
。在实函数中,clock_thread
代码要复杂得多,并且由于样式选择,我无法将当前的do_stuff
作为参数传递。
clock_thread
有没有更好的方法可以做到这一点?我想尽可能避免使用全局变量。
答案 0 :(得分:0)
我解决了这个问题,因为do_something()
函数知道它在哪个线程中(它具有指向的另一个结构)。 perform_read()
现在将当前的clock_thread
作为参数