| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > многопоточный сервер |
| Автор: admsasha 26.4.2005, 11:45 | ||||
собственно говоря, что у меня не так ? |
| Автор: GrayCardinal 26.4.2005, 16:04 | ||||
Перед этой строчкой неплохо бы проверочку что данные вообще есть. Я бы не стал так писать.
ты всегда прикалываешься "освобождением сокетов" или только когда сильно обкуришься ? полпачки-пачка ? нет, я конечно хорошо отношусь к bilbobagginz, но... руки видимо придется все ж таки поотрывать. и pthread на сколько я знаю для серваков не пользуют. пользуют fork () Сказать тебе что у тебя не так ? |
| Автор: admsasha 26.4.2005, 17:08 | ||
ну определитесь что лучше ))) fork как то проще, но вот лучше ли он ?, он же занимает больше памяти и ресурсов, так что лучше pthread .... |
| Автор: admsasha 26.4.2005, 18:03 | ||
| убрал free(p); все работает,вроде как.. но как закрывать сокет ? close(p) - не правильно как передать socket не через ссылку ? Добавлено @ 18:04
что и как именно ? |
| Автор: dargaard 26.4.2005, 21:31 | ||
free(p); вообше убери
у тебя же уже есть close(sock); - оно и закроет. |
| Автор: admsasha 27.4.2005, 02:28 | ||
А почему процесы то создаются ??
|
| Автор: dargaard 27.4.2005, 10:49 |
| 1. На некоторых системах потоки выводятся в списке процессов. 2. попробуй после close(sock); поставить pthread_exit(0); |
| Автор: admsasha 28.4.2005, 01:56 | ||
Так и pid`ы разные ? у меня Mandrake Linux 10.1 |
| Автор: achmed 28.4.2005, 08:36 |
| В Linux потоки реализованы как процессы с разделяемым контекстом. И еще раз man socket !!! |
| Автор: GrayCardinal 28.4.2005, 15:38 | ||||||
ты это кому ?
Добавлено @ 15:41
Валялся по полу и долго плакал... Ты представляешь себе сервак ? С, как минимум, 1Гб оперативки и Dual P3 ? ЗЫ у тебя даже в репуташке от bilbobagginz написано почему fork предпочтительней. |
| Автор: bilbobagginz 29.4.2005, 23:42 |
| мдяаааа.... вам батенька ( admsasha ) в библиотеку НУЖНО, к источникам. ваше чтиво: 1. A.Tanenbaum "Operating System concepts" 2. М.Bach "The design and implementation of UNIX Operating System" 3. чтобы понять что есть fork(), что есть thread, и какая разнница между "многопроцессовостью" и "многопоточностью" нужно видимо установить man страницы, и почитать их. ещё можно по этой ссылке слазать: http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html#Overview |
| Автор: AndrK 13.7.2006, 16:10 | ||||||||
Ну если fork предпочтительнее, тогда обоснуй переход проекта appache на использование потоков... Потоки менее нагружают систему... и хотя есть серваки которые ты описываешь и даже круче... ;-> все равно, если у тебя сотни соединений в секунду (образно выражаясь) fork накладен даже для таких серваков... Расточительно это... |
| Автор: GrayCardinal 13.7.2006, 18:37 | ||
| Sardar, Быстрей, медленней. Главное - хвост
Пусть бред доказывает тот, кто его озвучил (с) Игорь Чупин. Я к тому что рассуждение на тему fork VS pthread надо в Holy War. И для того чтоб решать что лучше для сервака, надо как минимум, иметь сервак. |