Я преобразую свою программу из модели с одной меткой в многопоточную модель.
Мой класс треков можно получить доступ и обновляться несколькими различными потоками. Я использую Mutex для защиты критического раздела (доступ и изменение) данных класса треков.
Я храню объекты класса треков в std :: unoromeded_map < /code>. Я сталкиваюсь с трудностями, заполняющими std :: unomoromed_map < /code>
c ++ Стандарт: C ++ 17
os: vxworks 7 < /p>
Code < /p>
#include
class Track
{
private:
int mTrackId;
std::mutex track_under_process_mutex;
//Other data
public:
Track::Track()
{
}
Track::~Track(void)
{
}
// Track received the track id
Track::Track(int trackId)
{
this->mTrackId = trackId;
}
bool helper1(void)
{
std::lock_guard lock(this->track_under_process_mutex);
//Execute track processing algorithm - 1
}
bool helper2(void)
{
std::lock_guard lock(this->track_under_process_mutex);
//Execute track processing algorithm - 2
}
}
int main(int argc, char *argv[])
{
std::unordered_map mTracks;
int trackId = 1;
//Wait for data from ethernet
//commonData.mTracks.emplace({trackId, Track{trackId}}); //or
commonData.mTracks.emplace(trackId, Track{trackId});
//commonData.mTracks[trackId] = Track{trackId};
Track& t = commonData.mTracks.at(trackId);
//Call approprate helper function
}
< /code>
ошибка: < /p>
commonData.mTracks.emplace(trackId, Track{trackId});
< /code>
в экземпляре специализации шаблона функции std :: _ hash
Подробнее здесь: https://stackoverflow.com/questions/796 ... rdered-map
Вставьте/выпустить объект класса, имеющего std :: mutex в std :: unoromended_map ⇐ C++
Программы на C++. Форум разработчиков
1749189604
Anonymous
Я преобразую свою программу из модели с одной меткой в многопоточную модель.
Мой класс треков можно получить доступ и обновляться несколькими различными потоками. Я использую Mutex для защиты критического раздела (доступ и изменение) данных класса треков.
Я храню объекты класса треков в std :: unoromeded_map < /code>. Я сталкиваюсь с трудностями, заполняющими std :: unomoromed_map < /code>
c ++ Стандарт: C ++ 17
os: vxworks 7 < /p>
Code < /p>
#include
class Track
{
private:
int mTrackId;
std::mutex track_under_process_mutex;
//Other data
public:
Track::Track()
{
}
Track::~Track(void)
{
}
// Track received the track id
Track::Track(int trackId)
{
this->mTrackId = trackId;
}
bool helper1(void)
{
std::lock_guard lock(this->track_under_process_mutex);
//Execute track processing algorithm - 1
}
bool helper2(void)
{
std::lock_guard lock(this->track_under_process_mutex);
//Execute track processing algorithm - 2
}
}
int main(int argc, char *argv[])
{
std::unordered_map mTracks;
int trackId = 1;
//Wait for data from ethernet
//commonData.mTracks.emplace({trackId, Track{trackId}}); //or
commonData.mTracks.emplace(trackId, Track{trackId});
//commonData.mTracks[trackId] = Track{trackId};
Track& t = commonData.mTracks.at(trackId);
//Call approprate helper function
}
< /code>
ошибка: < /p>
commonData.mTracks.emplace(trackId, Track{trackId});
< /code>
в экземпляре специализации шаблона функции std :: _ hash
Подробнее здесь: [url]https://stackoverflow.com/questions/79655460/insert-emplace-an-object-of-a-class-having-stdmutex-in-stdunordered-map[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия