スレッド局所記憶
POSIXスレッド (Pthreads) ではスレッド固有データ (英: thread-specific data) と呼ばれる。このスレッド固有データは、WindowsにおけるTLSの関数や機能と同様である。pthread_key_create() で key を生成し、この key はpthread_setspecific()によって任意のデータと関連付けることができる。各 key に関連付けられたデータは pthread_getspecific() を用いて取得することができる。pthread_key_create()はオプションで任意の destructor 関数を与えることも可能であり、スレッド固有データが NULL でなければ、スレッドが終了する際 destructor が呼ばれる。また、key は pthread_key_delete() で破棄しなければならない。
Microsoft Visual C++, Intel C/C++ (Windows), C++ Builder, Digital Mars C++ キーワード __declspec(thread) を下記のように使用する: __declspec(thread) int number;
C++ Builder ではキーワード __thread もサポートされる。 int __thread number;
Windows Vista および Windows Server 2008 より前の Windows では、__declspec(thread) は実行ファイルにリンク(アーリーバインド)された DLL でのみ動作し、LoadLibrary() でロードされる DLL では動作しない (APIは成功を返すが TLS に関する処理が行われないため保護違反もしくはデータ破壊が発生する)。 TLS の使用にはこれ以外にもルールが存在する。Thread Local Storage (TLS) | Microsoft Docs の "Rules and limitations" を参照。