如何在线程之间发送变量/信息

时间:2014-01-28 18:59:59

标签: c multithreading parent

我需要知道线程在进入等待状态之前如何将其ID发送到另一个线程。我想用它的ID传递一个变量,但我不知道该怎么做。

3 个答案:

答案 0 :(得分:1)

如果它只是一个线程及其父线程,则可以使用全局变量,因为它们在所有线程之间共享。如果您希望并发访问,请将其设为volatile

编辑:我不确定你是否在Linux上使用POSIX线程,但是你可能有办法在创建线程时传递一个指针(例如传递给struct)。它可以包含一个变量来存储其ID或指向要在父线程上调用的函数的指针。我知道你可以用Windows线程来做。

答案 1 :(得分:1)

您可以在线程中创建一个指向父级函数的指针(通过引用)。当它进入等待状态时,它可以只使用该指针触发其父节点。

答案 2 :(得分:1)

线程共享内存,因此您可以分配一个全局变量并让子进程写入。

比同步(也就是通知父节点已写入一个值)你有很多选择:你可以使用信号量,可以从线程发回信号回到它的父节点,使用同步变量,如解释{{ 3}}