|
2.3, Damon (??), 09:41, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
>баянистый сайт!
Ну почему же? Встречал людей ( привыкших к Win32API ), для которых сама идея fork'ать процесс выглядит дико. Так что, просто и доступно. ИМХО.
А вообще, fork, лично мне кажется проще многопоточности. И если, например, надо в час десяток клиентов обслужить и каждому, скажем, 100 байт передать, то самое оно, смысла не имеет городить что-то с многопоточностью.
| |
|
3.6, _umka_ (ok), 12:40, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
для таких задач правиный FSM позволит вобще все сделать в одном процессе :)
| |
|
4.8, Damon (??), 13:16, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
>для таких задач правиный FSM позволит вобще все сделать в одном процессе :)
Кстати, да. Буду знать. :-)
| |
|
5.10, _umka_ (ok), 17:27, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
Альтернатива
1) создали listen socket
2) создали shm, положили туда семафор
3) нафоркали сколько надо чилдов - в каждом fsm и trylock на семафоре вокруг этого сокета.
схема маштабируется как угодно
долго обрабатывается операция внутри fsm - сделай еще чилдов и вперед :)
| |
|
|
3.9, Staff (??), 16:03, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
Городят обычно с fork'ами и пайпами/shm. Если итоговые единицы исполнения имеют общие данные, однозначно потоки. Если можно форкнуться и забыть о дите пока то не сдохло, лучше fork(). В данном случае, как уже сказали, параллельность вообще не нужна.
| |
|
|
1.2, andr.mobi (??), 09:32, 16/01/2009 [ответить]
| +/– |
> чем устаревший метод fork()
Фразочка раскрывает недалёкость и некомпетентность автора.
Правильно говорить "старый добрый форк()", который в ряде случаев действительно использовать неэффективно.
| |
1.4, pavlinux (ok), 09:59, 16/01/2009 [ответить]
| +/– |
fork() нужон для exec_ов или для функций работающих с файлами.
остальное треды, мьютексы, семафоры, атомарные, чё там ещё...
| |
|
2.5, _umka_ (ok), 11:18, 16/01/2009 [^] [^^] [^^^] [ответить]
| +/– |
и еще для кучи всего.
Не забываем fork() это изолированое адресное пространство - а pthread shared.
в результате ошибка в одном процессе не может повлиять на остальные, а в случае тредов - очень легко. да и локинг в случае тредов может быть далеко не тривильным.
| |
|
1.7, XoRe (ok), 13:13, 16/01/2009 [ответить]
| +/– |
Можно сказать спасибо за статью.
Тема очень актуальна в связи со сложностью реализации хорошего "распоточивания" с правильным разделением ресурсов между потоками.
Например, файлы, сокеты и пайпы, доступны всем потокам.
И т.д.
Отсюда и нетривиальность решаемых задач.
| |
|