#c #multithreading #mfc #mutex #boost-thread
#c #многопоточность #mfc #мьютекс #boost-поток
Вопрос:
Можете ли вы использовать библиотеки boost::mutex для защиты критической части кода, когда вы не используете boost::thread, а вместо этого используете возможность потоковой передачи MFC через AfxBeginThread? Если да, есть ли какие-либо проблемы с этим?
Ответ №1:
(Реальный) поток — это (реальный) поток.
Boost не делает никаких особых предположений относительно того факта, что поток был создан напрямую (Windows API) или через Boost.
Короткий ответ:
Никаких проблем.
Ответ №2:
Да, ты можешь. Там нет никаких проблем, так как оба используют Win32 API за кулисами.
Комментарии:
1. «Boost использует Win32 API за кулисами » Это была моя первая реакция, но технически этого недостаточно: вы должны проверить, что Boost не хранит где-то список потоков, созданных с помощью Boost, просто чтобы запретить использование
boost::mutex
в потоке, не созданном с помощью Boost! (Boost действительно этого не делает.)