2012-06-18 20 views
1

我正在開發一個多線程的套接字監聽器(守護進程)。保留每個線程的字符串列表

我用pthread庫成功地實現了多線程。

當設備連接到其發送的守護進程的一個標識號,我的問題是:

如何存儲每一個線程識別號碼所以,當我從該設備接收的一些數據來知道它的ID。

在delphi中有一個叫threadvar的變量(一個爲每個線程分配的變量)。如果這是不可能的,有沒有一個庫可以用來存儲列表?我不刨重塑WEEL(如讓我自己的鏈表)

我用GNUCC對Linux Mint的

回答

2

這將是比較容易回答,如果我們有你的代碼,但:

  • 如果你想要一個帶有pthread的線程局部變量,只需將它分配給在線程中運行的函數 的棧(這個線程局部變量將是一個指向你的字符串列表的指針)。
  • 您可以使用Glib,它具有單列和雙列鏈表來存儲字符串。確保在線程中運行的函數的末尾釋放列表
  • 您可以將數據傳遞給將通過void *指針進行線程化的函數(不清楚是否需要執行此操作)
+0

+1不表示TLS。 –

1

我認爲你正在尋找線程特定的數據來存儲變量;然後查看pthread_setspecific()和pthread_getspecific()。

相關問題