私は完全に並列であり、依存関係がないので、pthreadsを使うのは当然の選択でした。残念ながら、1つの共有リソース、ログファイルがあります。pthreadsを使ってローカルストレージにアクセスする方法
いずれの場合も、ログが行単位でインターリーブされないようにするため、すべてのログ呼び出しでmutexを使用するのではなく、スレッドごとに別々のログファイルを開きます。しかし現在、コード全体には、グローバル変数ロガーがあります。
私は現在2つの解決策を持っていますが、どちらも私を幸せにしません。
- スレッドID:pthread_self()にハッシュを実装します。
- スレッド作成から呼び出すすべての関数にパラメータを渡します(非常に侵略的です)。
私は、スレッドごとにグローバル変数を持つように見えるようにするための巧妙な方法が好きです。オーバーヘッドはほとんどありません。
この変数を現在どのように使用しているかのコード例を追加してください。 – Alnitak