マルチスレッドなプログラムを書いていると、スレッド間で共有する変数へのアクセスを正しく直列化できているか、という点が常に問題になります。どうせなら、正しく書けているかコンパイル時に確認したいよね、ということで、以下のような C++ テンプレートを書いてみました。 template <typename T> class cac_mutex_t { public: class container { friend class cac_mutex_t<T>; T t_; pthr... > このページを見る
最終更新時間:
2009年06月23日19時50分
みんなのブックマーク 人気(0) 新着
- 「要は、RAII かつスマートポインタなクラスを使って、ロックをコントロールしつつ、アクセスの直列化を保証できるよ、ということです。」
- id:ototoi ご指摘ありがとうございます。修正しました / id:izariuo440 ロックしている間「しか」変数にアクセスできないところが違う
- ロックをした友達経由でだけ触らせてあげる
- boost::mutexとかとの違いはなんだろう?
- 後で理解する
- foo.xではアクセスできないかと・・・。foo->x もしくは (*foo).x ならば可能。friendをつかってlockref経由でのみでしかアクセスをできないようにしているのがミソ。
- これならスマートポインタ使わなくても...と思ったけど、シリアライズかー。使えそう。
- lockref のスコープでロックをかけて lockref からしかオブジェクトを参照しなくすることで、変数へのアクセスを直列化する。// scoped_lock と scoped_ptr の合わせ技








