Вопрос
Является ли общий объект хорошим способом передачи информации о состоянии между родительским процессом и одним или несколькими рабочими потоками?Я представлял один из двух способов сообщить о ходе выполнения работы, например, рабочим потоком:
- Переменные, переданные по ссылке на рабочий поток
std::atomic<int> percentageProgress;
std::thread worker_thread(someFunctionCall, std::ref(percentageProgress));
Объект - с переменными состояния в качестве членов объекта - передается по ссылке
std::atomic<SharedStateObj> mySharedStateObj;
std::thread worker_thread(someFunctionCall, std::ref(mySharedStateObj));
Дополнительные мысли:
Если я объявлю переменные-члены SharedStateObj как статические и инициализирую mySharedStateObj в основном процессе, как это изменит объект mySharedStateObj_worker, который инициализируется в рабочем потоке?
Язык: C ++ 11 Система:Операционная система Nvidia Jetson: Linux Ubuntu 16.04