コードを将来どのようにスケーリングする必要があるかわからないため、グローバル変数の使用を避けようとしています。そのため、独立したミューテックスで複数のスレッドを生成する機能が必要です。Mutex と条件付き変数をクラス コンストラクターに渡そうとしています。
ヘッダー ファイル:
class Receiver {
private:
std::mutex & _global_mtx;
std::condition_variable & _global_cv;
bool & state;
public:
// Construct
Receiver(std::mutex &, std::condition_variable &, bool &);
};
コード ファイル:
/*-------------------------------------
Construct
--------------------------------------*/
Receiver::Receiver(std::mutex & mtx, std::condition_variable & cv, bool & state){
_global_mtx = mtx;
}
はすでに参照変数として宣言されているため、これは明らかに問題を引き起こしているため、参照を からに_global_mtx
渡す方法がわかりません。mtx
_global_mtx
また、参照を宣言するときは、参照に値を割り当てる必要があることを知っています(潜在的にNULL)ので、これを処理するより良い方法はありますか?この必要性に遭遇したのは私が最初で唯一の人ではないと確信していますが、どこで答えを探すべきかわかりません.