В чем разница между thread_posixs и thread_win32 в gcc-порте Windows?

Я хотел скачать последнюю доступную версию gcc 4.7.2 Компилятор для Windows.
Когда я дошел до этого страница где я должен был увидеть ссылку для скачивания, я столкнулся с двумя категориями:

  1. темы-POSIX
  2. резьба-win32

Какая разница между этими двумя?
Являются ли они только потоковыми реализациями? Я имею в виду, что они отличаются только тем, как они реализованы, и, таким образом, конечный результат (классы, как их использовать и т. Д.) Остается тем же самым?
Или они навязывают определенный стиль кодирования?

11

Решение

Итак, ссылка, которую вы указали, ведет к сборке автономного gcc 4.7.2 для windows, a.k.a mingw64. Для построения этого компилятора используется набор скриптов, которые помогают определить параметры компиляции. Сценарии просто называются MinGW-сборками и могут быть найдены в разных местах:

В скриптах есть опция, которая указывает, какая модель потока будет использоваться для части std :: threads стандарта C ++ 11 (это разрешено для MinGW благодаря экспериментальный патч применяется к этой версии GCC).
В одном случае используется API-интерфейс потока win32, а в другом — API-интерфейс posix.

Обратите внимание, что Windows не поддерживает все POSIX API из коробки, поэтому необходимо использовать некоторую внешнюю библиотеку эмуляции (winpthreads).

Сценарий настройки исходного кода GCC имеет возможность указать этот API (—enable-threads =), и именно это используется в сценариях сборки.

Короче говоря, для этой версии mingw в выпуске threads-posix будет использоваться API posix и разрешить использование std :: thread, и thread-win32 будет использовать Win32 API, и отключить стандартную часть std :: thread.

18

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

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

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