www.linux.org.ru
"Linux быстрее в создании процессов и потоков(нитей)
Тест производительности создания потоков.
Участники:
Linux RedHat 7.2 (ядро 2.4.2)
Windows XP
Windows 2000
http://www-106.ibm.com/developerworks/linux/library/l-rt7/"
Поясните плз, кто в системном программировании силен. Как такое может
быть?
Ведь изначально в юниксе вообще не было потоков(не задумывался он
изначально для серьезных дел, - проектировался фактически как офисная
система, для печати, хранения файлов,...),
и вся многозадачность сводилась к порождению процессов вилкой (fork).
Да и сейчас потоки не используют практически, уж не
знаю кривость их реализации виновата или традиции так сказать.
Достаточно запустить ps -ef и можно увидеть кучу процессов
где в NT обычно используются потоки.
http://www.citforum.ru/operating_systems/articles/process.shtml
"..в стандартной библиотеке поддержки многонитевых программ Linux
реализованы просто как процессы, порожденные с указанием флага
CLONE_VM, и с точки зрения ядра системы ничем не отличаются от любых
других процессов."
Как мы видим, практически в линуксе нет потоков вообще, а есть некий
врапер,оболочка для их (POSIX) эмуляции.
Т.е. как, фактически порождение процесса, может быть быстрее
порождения реального потока (в том же адресном пространстве)?
P.S. я не хочу подымать флейм, можно и без потоков жить(с Ораклом
так удобней даже админу),но вот разобраться бы хотелось.
Вообщем, хотел сказать, - не пинайте сильно.