タグ付けされた質問 「thread-local-storage」

3
C ++ 11でthread_localはどういう意味ですか?
thread_localC ++ 11 での説明と混同しています。私の理解では、各スレッドには関数内のローカル変数の一意のコピーがあります。グローバル/静的変数は、すべてのスレッドからアクセスできます(ロックを使用して同期アクセスされる場合があります)。そして、thread_local変数はすべてのスレッドに表示されますが、それらが定義されているスレッドによってのみ変更できますか?それが正しいか?

4
C ++ 11のthread_local変数は自動的に静的ですか?
これら2つのコードセグメントに違いはありますか? void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } そして void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } 裏話:元々、静的ベクトルV(いくつかの中間値を保持するために、関数に入るたびにクリアされます)とシングルスレッドプログラムがありました。プログラムをマルチスレッドプログラムに変えたいので、どういうわけかこの静的修飾子を取り除く必要があります。私の考えは、すべての静的オブジェクトをthread_localに変換し、他に何も心配しないことです。これは裏目に出ることができますか?

2
コンパイラーは未使用の静的なthread_localクラスメンバーを無視しましたか?
クラスでスレッド登録をしたいので、thread_local機能のチェックを追加することにします。 #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl; } }; class Bar { public: Bar() { std::cout << "Bar()" << std::endl; //foo; } ~Bar() { std::cout << "~Bar()" << std::endl; } private: static thread_local …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.