私は現在 C で書いているアプリを持っています。ここでは、プロジェクトの一部であるライブラリ内で宣言されたいくつかの TLS 静的グローバル変数があります。
TLS 変数は、gcc の __thread ディレクティブを使用して宣言されます。
.ctor && .dtor セクションを使用して、共有または静的 C ライブラリ内のスレッドごとに TLS データを初期化できるかどうか、およびこの方法を使用したスレッドセーフがどの程度かを知りたいです。
.ctor && .dtor セクションはスレッドごとに実行されますか、それとも親プロセスにのみ存在しますか?
最後に、ライブラリはアプリケーション コードに静的または動的にコンパイルされます。これは、共有/静的ライブラリで宣言された .ctor && .dotr セクションが最終的な実行可能ファイルの一部になることを意味しますか?
ほとんどのスレッド部分について本当に混乱しています...アイデアを持っている人はいますか?