linux — завершить все потоки или текущий запущенный поток, поддерживая процесс в Stack Overflow

Я хочу уничтожить все текущие потоки процесса, когда он получает сообщение об остановке. Но я хочу, чтобы процесс продолжал работать и принимать новые запросы. Я использовал c ++ std :: thread и не pthreads

0

Решение

Вкратце: вы не можете уничтожать потоки в ISO c ++. Вы можете только, например, повторно опрашивать флаг внутри потока и останавливать дальнейшую обработку.

Поскольку std :: threads обычно реализуются поверх pthreads в Linux, вы можете использовать этот API, например, посмотри на pthread_cancel. Имейте в виду, однако, что это не вызовет деструкторов c ++, поэтому вы должны быть очень осторожны, когда делаете это, чтобы избежать утечек ресурсов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]