|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 25, 2003 18:30:02 вот пишу чтото похожее на веб сервер и прокси сервер...кароче пока сталкиваюсь с такой проблемой... надо каждое отдельное соелинение запускать в отдельном треде ? но какие у этого есть недостатки ? ведь тоже самое можно осуществить с помощью процесса, и я даже чаще встречал, что сервера работают с процессами.... подскажите плз! |
|
|
Дата: Июн 25, 2003 19:40:35 У тредов есть очень много общего, например - текущая директория. Если ты ее меняешь в одном треде - то она поменяется и в другом. Зато процессы едят намного больше ресурсов. В общем - выбор надо делать соответственно тому, что именно тебе надо. Если сам не сможеш решить - детальнее опиши проект. Подумаем вместе :) |
|
|
Дата: Июн 25, 2003 20:21:29 Для этого есть стандартное решение - процесс естественно нужен один, а вот потоков много, но только их количество нужно ограничить. Вобщем это называется "пул потоков". Посмотри на rsdn.ru, там как раз по этой теме было что-то. |
|
|
Дата: Июн 26, 2003 01:35:18 Зато процессы едят намного больше ресурсов AFAIK, в win9x нет особых отличий между процессом и потоком. ЗЫ: Про "пул потоков" можно найти инфу с примерами в литературе по Java для серверных приложений. На асме всё это гораздо сложнее... Кстати, в Tomcat уже отказались от реутилизации потоков!!! |
|
|
Дата: Июн 26, 2003 12:25:24 Ессно нужно использовать потоки - подумай сам с каким геморром ты столкнешься при передаче хэндлов между процессами ( имеется ввиду сокет , который ты получишь по accept ) Кроме того "многопоточность в виде многопроцессности" - это Unix-фича, скажем так, (fork) но и там все уже давно заметили преимущества потоков внутри одного процесса и придумали pthreads :-) В общем несколько процессов для подобной задачи вообще не нужно ИМХО. |
|
|
Дата: Июн 26, 2003 12:32:40 есть ли какоето ограничение по количеству потоков и процессов ? просто я написал прогу которая создаёт много потоков которые сразуже возвращаются, прога работает несколько секунд и потом выскакивает ошибка "Недостаточно квот для обработки команды" |
|
|
Дата: Июн 26, 2003 17:32:49 Количество процессов - не знаю. Количество потоков - около 2000 на процесс - проверял, когда писал свой пул потоков. количество можно найти используя windbg и виндовый аналог sys/limits.h |
|
|
Дата: Июн 26, 2003 23:03:34 значит потоки не подходят для этого ? |
|
|
Дата: Июн 26, 2003 23:16:33 rst около 2000 на процесс - проверял, когда писал свой пул потоков Да с таким пулом ось заглохнет, т.е. будет затрачивать больше ресурсов на переключения чем на каждый поток в отдельности. spaces значит потоки не подходят для этого? А зачем вам столько потоков? Разве 10-50 соединений вам не хватит для вашего прокси? Если ответ отрицательный, то забудьте о wintel PC и переходите на *nix-сервер. |
|
|
Дата: Июн 26, 2003 23:36:28 · Поправил: Four-F Да почемуж не подходят. Надо просто ограничить их количество разумной величиной. Для того и пул. А 2000 это какое-то экстремальное число. При таком кол-ве потоков издержки на управление ими будут такие, что ой-ёй-ёй! Поищи в сети материальчик или по книжкам поройся - это часто встречающаяся задачка. Упсс... опередили. |
|
|
Дата: Июн 27, 2003 00:58:18 нет, так они не в одно время все работают.... они создаются и сразуже возвращаются.... а потом криэйтпроцесс возращает ошибку о которой я писал раньше |
|
|
Дата: Июн 27, 2003 02:02:02 spaces они создаются и сразуже возвращаются.... Плз, покажите фрагмент кода, создающий треды. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070 |