Использовать boost:: mutex с потоками MFC (AfxBeginThread)?

#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 действительно этого не делает.)