我想知道如何在另一個類的不同實例中共享一個類中的互斥量。如何在一個類的不同實例之間共享一個互斥量?
現在,我有一個類Indexer,它有一個Boost互斥體和condition_variable作爲私有成員變量。我在我的main中創建一個Indexer類的auto_ptr,並將Indexer的指針傳遞給另一個類Robot的實例。
我是這樣做的以下內容:
std::auto_ptr<Indexer> index_service(new Indexer());
Robot a(*index_service.get());
Robot b(*index_service.get());
Robot c(*index_service.get());
機器人的構造函數是:
Robot(Indexer &index_service)
{
this->index_service = index_service;
}
機器人的頭看起來像:
class Robot
{
public:
Robot(Indexer &index_service);
private:
Indexer index_service;
};
然而,由於互斥是不可複製的,我得到一個錯誤。
我正在考慮讓互斥鎖和condition_variable shared_ptrs,但我讀到這可能會導致意外的行爲。
有人可以告訴我正確/正確的方法來做到這一點嗎?
謝謝!
我想在你的機器人類中,你的意思是有一個Indexer類型的變量? –