【问题标题】:Keep a list of strings for every thread为每个线程保留一个字符串列表
【发布时间】:2012-06-18 08:20:03
【问题描述】:

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

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

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

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

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

我在 Linux Mint 上使用 GNUCC

【问题讨论】:

    标签: c multithreading daemon


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-04-28
        • 2021-12-18
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-01
        • 2015-05-15
        相关资源
        最近更新 更多