URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 48102
[ Назад ]

Исходное сообщение
"Введение в многопоточное программирование"

Отправлено opennews , 15-Янв-09 22:18 
В статье (http://www.ibm.com/developerworks/ru/library/au-unixforks/in...) представлено введение в многопоточное программирование, рассматривается использование POSIX-потоков в качестве замены вызову метода fork().

URL: http://www.ibm.com/developerworks/ru/library/au-unixforks/in...
Новость: http://www.opennet.me/opennews/art.shtml?num=19807


Содержание

Сообщения в этом обсуждении
"Введение в многопоточное программирование"
Отправлено pavlinux , 15-Янв-09 22:18 
баянистый сайт!

"Введение в многопоточное программирование"
Отправлено Damon , 16-Янв-09 09:41 
>баянистый сайт!

Ну почему же? Встречал людей ( привыкших к Win32API ), для которых сама идея fork'ать процесс выглядит дико. Так что, просто и доступно. ИМХО.
А вообще, fork, лично мне кажется проще многопоточности. И если, например, надо в час десяток клиентов обслужить и каждому, скажем, 100 байт передать, то самое оно, смысла не имеет городить что-то с многопоточностью.


"Введение в многопоточное программирование"
Отправлено _umka_ , 16-Янв-09 12:40 
для таких задач правиный FSM позволит вобще все сделать в одном процессе :)

"Введение в многопоточное программирование"
Отправлено Damon , 16-Янв-09 13:16 
>для таких задач правиный FSM позволит вобще все сделать в одном процессе :)

Кстати, да. Буду знать. :-)


"Введение в многопоточное программирование"
Отправлено _umka_ , 16-Янв-09 17:27 
Альтернатива
1) создали listen socket
2) создали shm, положили туда семафор
3) нафоркали сколько надо чилдов - в каждом fsm и trylock на семафоре вокруг этого сокета.
схема маштабируется как угодно
долго обрабатывается операция внутри fsm - сделай еще чилдов и вперед :)

"Введение в многопоточное программирование"
Отправлено Staff , 16-Янв-09 16:03 
Городят обычно с fork'ами и пайпами/shm. Если итоговые единицы исполнения имеют общие данные, однозначно потоки. Если можно форкнуться и забыть о дите пока то не сдохло, лучше fork(). В данном случае, как уже сказали, параллельность вообще не нужна.

"Введение в многопоточное программирование"
Отправлено andr.mobi , 16-Янв-09 09:32 
> чем устаревший метод fork()

Фразочка раскрывает недалёкость и некомпетентность автора.
Правильно говорить "старый добрый форк()", который в ряде случаев действительно использовать неэффективно.


"Введение в многопоточное программирование"
Отправлено pavlinux , 16-Янв-09 09:59 
fork() нужон для exec_ов или для функций работающих с файлами.

остальное треды, мьютексы, семафоры, атомарные, чё там ещё...  


"Введение в многопоточное программирование"
Отправлено _umka_ , 16-Янв-09 11:18 
и еще для кучи всего.
Не забываем fork() это изолированое адресное пространство - а pthread shared.
в результате ошибка в одном процессе не может повлиять на остальные, а в случае тредов - очень легко. да и локинг в случае тредов может быть далеко не тривильным.

"Введение в многопоточное программирование"
Отправлено XoRe , 16-Янв-09 13:13 
Можно сказать спасибо за статью.
Тема очень актуальна в связи со сложностью реализации хорошего "распоточивания" с правильным разделением ресурсов между потоками.
Например, файлы, сокеты и пайпы, доступны всем потокам.
И т.д.
Отсюда и нетривиальность решаемых задач.