POSIX Threads против Win32 Threads - PullRequest
       3

POSIX Threads против Win32 Threads

10 голосов
/ 13 апреля 2011

Я просто опустил пальцы в пруд POSIX и впервые опробовал нити POSIX. До сих пор у меня сложилось впечатление, что между потоками POSIX и потоками Win32 существует большое архитектурное различие, но из (по общему признанию, небольшого), которое я пробовал, я действительно не видел никакой разницы.

Мне по-прежнему любопытно - каковы различия (если они есть) между потоками POSIX и потоками Win32? Они принципиально отличаются или просто имеют незначительные различия?

1 Ответ

12 голосов
/ 13 апреля 2011

Существуют огромные различия между тем, как потоки управляются и планируются "под капотом" в ядрах семейства Windows NT и во многих ядрах Unix, , но это не вопрос .

Если выВы только что говорили об интерфейсе (сервисы, предоставляемые потоками Win32 и потоками POSIX), с некоторой работой вы можете почти сопоставить любую функцию потока POSIX с эквивалентом Win32 ~ 1: 1.И это было сделано (см. Pthreads-win32).

Одно большое отличие, которое я могу заметить, заключается в том, что под Win32 вы используете системные вызовы для работы с потоками, вместо этого вызовы потоков POSIXчасть библиотеки ( pthreads ), которая - во многих системах Unix - вызывает некоторые системные вызовы очень низкого уровня ядер Unix (в Linux есть clone ()).

Просто чтобы доказать вам, что, если вы не углубитесь в pthreads, ничего особенного, вы можете скачать pthreads-win32, который демонстрирует тот же интерфейс pthreads, и любая функция отображается в API потоков Win32.И это работает.

...