Хорошенько подумать, почему бы не использовать WinApi для создания потоков. Прямого аналога fork() на Windows нет, в частности, из-за того, что потоки в большинстве случаев удобно заменяют отдельные процессы.
еще один компЕлятор будет если только добавишь его при установке cygwin'a a сам cygwin - это не компилятор, это набор разных тулзов, ну вот http://www.cygwin.org/cygwin/
Можно ли нормально скомпилировать программу МинГВином, но с цугвиновскими библиотеками?
У меня не получилось - даже если подменить хидеры мингвина цугвиновскими и прилинковать libcygwin.a, сыпятся многочисленные варнинги на редефенишионсы.
Видно мингвин неявно линкует что-то, что конфликтует с именами цугвина. Справиться с этим не могу.
4.2 В линуксе потоки создаются на основе «легковесных процессов». Процесс в винде гораздо тяжелее. И модель «мультипроцессности», которая опирается на fork() под виндой становится УГ, потому что создатели CreateProcess() ничего похожего не имели в виду.
4.2 В линуксе потоки создаются на основе «легковесных процессов».
И это не мешает планировщику выполнять потоки как отдельные сущности.
Процесс в винде гораздо тяжелее.
В каком смысле «тяжелее»? Контекста больше, запустить труднее?
И модель «мультипроцессности», которая опирается на fork() под виндой становится УГ, потому что создатели CreateProcess() ничего похожего не имели в виду.
хотя Native API и позволяет сделать fork, через некоторые хитрости, но надо понимать, что в винде у процесса нет «состояния выполнения», как оно у процессов в unix-like системах. У процесса есть виртуальная память, коллекция тредов и другие штуки, но сам процесс это просто контейнер, по процессам время исполнения не квантуется.
хотя Native API и позволяет сделать fork, через некоторые хитрости, но надо понимать, что в винде у процесса нет «состояния выполнения», как оно у процессов в unix-like системах. У процесса есть виртуальная память, коллекция тредов и другие штуки, но сам процесс это просто контейнер, по процессам время исполнения не квантуется.
Нет нет, с вендой я согласен. Вендовый процесс как я понимаю, больше похож на task из L4. Я хотел сказать что «light-weight process», «thread» в других unix-like OS и task в линуксе - принципиально похожие сущности с разными названиями.
Вопрос ТСа относился к «тому же самому» под оффтопиком. Ну так «того же самого» на деле-то и нет. И вытекает это не из различий в терминологии :) (Дело не в похожести, а в различиях)