1

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

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

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

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

在 delphi 中,有一个叫做 threadvar 的东西(为每个线程分配的变量)。如果这不可能,是否有一个库可以用来存储列表?我不打算重新发明轮子(例如制作我自己的链表)

我在 Linux Mint 上使用 GNUCC

4

2 回答 2

2

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

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

I think you are looking for thread specific data to store variables; then have a look in to pthread_setspecific() and pthread_getspecific().

于 2012-06-18T08:54:52.240 回答