エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
localtimeやstrtokは本当にスレッドセーフにできないのか (3): GCC __thread keyword - memologue
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
localtimeやstrtokは本当にスレッドセーフにできないのか (3): GCC __thread keyword - memologue
3.3以降のgccを使っているのであれば、pthread_getspecific関数を使うのと同様のことを、特殊なキーワー... 3.3以降のgccを使っているのであれば、pthread_getspecific関数を使うのと同様のことを、特殊なキーワード __thread を使って実現できます。上で示したlocaltime関数の、長ったらしいソースコードは、次のように簡潔に書き直せます。 #include <time.h> #include <stdlib.h> struct tm* localtime(const time_t* timep) { static __thread struct tm ret; return localtime_r(timep, &ret); }このコードを gcc -S -fverbose-asm してみると、pthread_key と pthread_once を使った上のソースコードより簡潔なコードが吐かれております。移植性を気にしないなら、可読性・速度ともにこちらの方法が勝って