делан перевод книги Indy In Depth
Загрузить можно с моего сайта в форма или ворд или pdf
--
With best regards,
Anatoly Podgoretsky
Ты писал 11 февраля 2006 г., 23:54:22:
> делан перевод книги Indy In Depth
> Загрузить можно с моего сайта в форма или ворд или pdf
Здорово! Большое спасибо за такую гигантскую и полезную работу!
ЗЫ Странно, вроде обычно pdf файлы больше doc?
С уважением,
Storm
Сейчас WinAmp играет: Celldweller - One Good Reason
AP> делан перевод книги Indy In Depth
AP> Загрузить можно с моего сайта в форма или ворд или pdf
Отличная работа! Это ведь сколько времени надо положить... респект.
With best regards, Andrew V. Fionik. E-mail: fio...@papillon.ru
БОЛЬШОЕ СПАСИБО!
Начал читать, очень понравилось :)
--
Good luck!
Sergey Tulaev
Пишу свой собственный многопоточный протокол связи на основе TCP/IP.
Объясните пожалуйста сколько одновременно открытых потоков может быть
открыто? От чего это зависит?
Попробовал создать пустышки в Win2000Server - удалось открыть 2007
штук, после чего ошибка - нехватка памяти при создании потока
На компьютере ОЗУ-500Мб, так что наверное речь о другой памяти...
Каким образом работает PHP или Апачи, обрабатывающие неограниченное
количество одновременных запросов?
--
С уважением,
Andy mailto:an...@cherno.cv.ua
A> Пишу свой собственный многопоточный протокол связи на основе TCP/IP.
A> Объясните пожалуйста сколько одновременно открытых потоков может быть
A> открыто? От чего это зависит?
От размера адресного пространства процесса
A> Попробовал создать пустышки в Win2000Server - удалось открыть 2007
A> штук, после чего ошибка - нехватка памяти при создании потока
A> Hа компьютере ОЗУ-500Мб, так что наверное речь о другой памяти...
При создании потока резирвируется 1мб под стэк потока, соответсвено
1мб*2007 =~2гб, что соотвествует размеру максимального адресного пространства
в стандартной конфигурации.
rtfm ms-help://MS.PSDKXPSP2.1033/dllproc/base/createthread.htm
A> Каким образом работает PHP или Апачи, обрабатывающие неограниченное
A> количество одновременных запросов?
хм.. неограниченное ли?
а вообще например:
1. inetd+httpd
2. один поток обрабатывает несколько клиентов
3. системный вызов fork, который создает копию процесса, и эта копия
облуживает клиента.
4. какой-то другой вариант.
Я.
AC> 1. inetd+httpd
Тоже что и 3.
AC> 2. один поток обрабатывает несколько клиентов
Это да. Используется, кстати, в Oracle MTS.
AC> 3. системный вызов fork, который создает копию процесса, и эта копия
AC> облуживает клиента.
Hу чем не 1 поток на одного клиента? :-)
With best regards, Andrew V. Fionk. E-mail: fio...@papillon.ru
A> Каким образом работает PHP или Апачи, обрабатывающие неограниченное
A> количество одновременных запросов?
Да ну... генерил я как-то потоки под линуксом. Система сдохла довольно
быстро.
Вы писали 28 лютого 2006 р., 13:46:09:
A>> Пишу свой собственный многопоточный протокол связи на основе TCP/IP.
A>> Объясните пожалуйста сколько одновременно открытых потоков может быть
A>> открыто? От чего это зависит?
AC> От размера адресного пространства процесса
A>> Попробовал создать пустышки в Win2000Server - удалось открыть 2007
A>> штук, после чего ошибка - нехватка памяти при создании потока
A>> Hа компьютере ОЗУ-500Мб, так что наверное речь о другой памяти...
AC> При создании потока резирвируется 1мб под стэк потока, соответсвено
AC> 1мб*2007 =~2гб, что соотвествует размеру максимального адресного пространства
AC> в стандартной конфигурации.
Тогда возникают другие вопросы:
Как отловить когда закончиться адресное пространство???
Как зарезервировать его на 2-3 системных потока?
Как обработать ошибку создания нового потока без выскакивания
стандартной ошибки системы?
Или в крайнем случае как вычислить сколько потоков еще может открыть
программа?
A> Как отловить когда закончиться адресное пространство???
Когда получишь ошибку при попытке распределения какого-нить объекта и куска
памяти.
A> Как зарезервировать его на 2-3 системных потока?
Все потоки процесса используют одно и то-же адресное пространство, но вот
стек у каждого потока свой.
A> Как обработать ошибку создания нового потока без выскакивания
A> стандартной ошибки системы?
Hикак. Если система (именно система), а не твоя программа выдает сообщение
об ошибке, то помешать ей ты не сможешь.
A> Или в крайнем случае как вычислить сколько потоков еще может открыть
A> программа?
Можно примерно оценить, по количеству свободной физической или виртуальной
памяти. Однако такая оценка будет очень приблизительной. Выделять по одному
потоку на обслуживание одного клиента - это дорого, если предполагается что
клиентов будет очень много. Когда предполагается очень большое количество
клиентов, которые соединяются с сервером, имеет смысл делать так чтобы один
поток обслуживал по очереди запросы нескольких клиентов.
With best regards, Andrew V. Fionik. E-mail: fio...@papillon.ru