Управление потоками
От: Аноним  
Дата: 14.04.11 11:34
Оценка:
привет.
как корректно завершить работу потока?
допустим, в потоке выполняется операция.. обработка файла в 10Гб. Как мне правильно отменить/завершить операцию?
Потоки сделаны на boost::thread
варианты:
1. Можно постоянно проверять объект синхронизации на доступность.
2. Можно натыкать boost::this_thread::interrupt_point() и вызывать последовательность
boost::thread::interrupt();
boost::thread::join();

3. некий флаг завершения, который нужно постоянно проверять в потоке.

Но все эти решения неуниверстальны и не дают возможности остановить операцию сразу же по требованию (т.е. работает, пока флаг не будет проверен).
Самый корректный вариант натыкать вызовов boost::this_thread::interrupt_point() и ловить исключение?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.