std::thread, posix threads и потоки win32 в MinGW-W64

Я использую MinGW_W64, и мне трудно решить, как двигаться дальше с опцией "многопоточность". Я могу использовать либо потоки posix, либо потоки win32. До сих пор я использовал "std::thread" в C++11 для своей работы с потоками (для этого требуется опция posix threads), и мне действительно нравится, когда интерфейс делает вещи таким образом. Тем не менее, я прочитал из нескольких источников, что потоки posix значительно медленнее, чем потоки win32, и производительность для меня большая проблема.

Мой проект в конечном итоге будет мультиплатформенным, но сейчас моя основная машина разработки работает под управлением Windows 7.

Мой вопрос: медленнее ли posix-потоки в MinGW_W64 медленнее, чем в win32? Если так, как бы мне написать сценарий, который позволил бы мне использовать интерфейс, похожий на std::thread, но используя потоки win32 под капотом (или найти такую ​​оболочку, если кто-то ее уже написал)?

1 ответ

Уже существует упрощенная собственная реализация примитивов std:: thread и sync для MinGW, реализованная в чистом WINAPI: https://github.com/meganz/mingw-std-threads

Это библиотека только для заголовков, которая должна работать с любой версией MinGW, которая имеет надлежащую поддержку C++11.

Другие вопросы по тегам