3

pthreads を使用して C++ でスレッド ローカル変数を格納および取得する簡単な方法を実装しようとしています。Java の ThreadLocal に似たもの。スレッドを作成するときに pthread_key_t を作成する部分を取得しますが、スレッドのコードの任意の場所からその値を取得するにはどうすればよいですか? pthread_self を使用してスレッド ID を取得できますが、これを取得したら TLS キーを取得することはできますか?

PS: Boost がこれを行うことは知っていますが、Boost は使用していません。

4

2 に答える 2

1

通常pthread_key_t、スレッドを作成するときは作成しません。その前に一度作成し、キー ID をどこかに保存します。

これが完了すると、各スレッドはキーのコンテンツに対して独自の値を持ち、pthread_setspecific()および をpthread_getspecific()それぞれ使用してコンテンツを設定および取得できます。

于 2013-08-14T15:53:14.363 に答える