保留每个线程的字符串列表

时间:2012-06-18 08:20:04

标签: c multithreading daemon

我正在开发一个多线程套接字侦听器(守护进程)。

我使用pthread库成功实现了多线程。

当设备连接到守护程序时,它会发送一个标识号,我的问题是:

如何为每个线程存储该标识号,以便我从该设备接收一些数据以了解它的ID。

在delphi中称为threadvar(为每个线程分配的变量)。如果不可能,是否有可用于存储列表的库?我没有计划重新发明(例如制作我自己的链表)

我在Linux Mint上使用GNUCC

2 个答案:

答案 0 :(得分:2)

如果我们有你的代码会更容易回答:

  • 如果你想要一个带有pthread的线程局部变量,只需将它分配给函数的堆栈 它在一个线程中运行(这个线程局部变量将是一个指向你的字符串列表的指针)。
  • 您可以使用具有单链接和双链接列表的Glib来存储您的字符串。确保释放在线程中运行的函数末尾的列表
  • 您可以将数据传递给函数,该函数将穿过void *指针(不清楚您是否需要这样做)

答案 1 :(得分:1)

我认为您正在寻找存储变量的线程特定数据;然后查看pthread_setspecific()和pthread_getspecific()。