Я пытаюсь изолировать проблему с многопоточной чтением в моем приложении C ++. < /p>
обработчик ниже создается и «обрабатывается» в вспомогательном потоке. < /p>
struct Handler
{
void process(const std::vector ops)
{
std::vector::const_iterator iter = ops.cbegin();
while( iter != ops.cend() ) {
processOperation( op );
}
}
void processOperation(std::vector::const_iterator& iter)
{
size_t op = *iter;
iter++;
switch( op ) {
case frame_push : {
processOperation( iter );
break;
}
case frame_pop : {
return;
}
default : { break; }
}
}
};
< /code>
Как вы можете видеть в вышеперечисленном, процессоперпоокуса () вызывает себя, если текущий «OP» будет равен frame_push. Однако, когда я запускаю этого обработчика в вспомогательном потоке вместо основного потока, это происходит гораздо быстрее. < /p>
Кажется, что возможность переполнения стека вызовов не является моей единственной проблемой здесь. Может ли быть и проблема повторной деятельности? Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/309 ... k-overflow