Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Глубины Инди

15 views
Skip to first unread message

Anatoly Podgoretsky

unread,
Feb 11, 2006, 3:54:22 PM2/11/06
to
Hello, All!

делан перевод книги Indy In Depth
Загрузить можно с моего сайта в форма или ворд или pdf

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.doc&file_id=IndyInDepth 1588 кб DOC

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.pdf&file_id=IndyInDepth 1031 Кб PDF

--
With best regards,
Anatoly Podgoretsky

Ilja Shushin

unread,
Feb 12, 2006, 8:14:20 AM2/12/06
to
Привет, Anatoly.

Ты писал 11 февраля 2006 г., 23:54:22:


> делан перевод книги Indy In Depth
> Загрузить можно с моего сайта в форма или ворд или pdf

Здорово! Большое спасибо за такую гигантскую и полезную работу!

ЗЫ Странно, вроде обычно pdf файлы больше doc?

С уважением,
Storm

Сейчас WinAmp играет: Celldweller - One Good Reason

Andrew V. Fionik

unread,
Feb 13, 2006, 4:06:57 AM2/13/06
to
Hello, Anatoly!
You wrote to All on Sat, 11 Feb 2006 23:54:22 +0500:

AP> делан перевод книги Indy In Depth
AP> Загрузить можно с моего сайта в форма или ворд или pdf

Отличная работа! Это ведь сколько времени надо положить... респект.

With best regards, Andrew V. Fionik. E-mail: fio...@papillon.ru

Sergey Tulaev

unread,
Feb 21, 2006, 5:18:59 AM2/21/06
to
> сделан перевод книги Indy In Depth
> Anatoly Podgoretsky
>

БОЛЬШОЕ СПАСИБО!
Начал читать, очень понравилось :)

--
Good luck!
Sergey Tulaev


Andy

unread,
Feb 22, 2006, 8:39:38 AM2/22/06
to
Здравствуйте, All.

Пишу свой собственный многопоточный протокол связи на основе TCP/IP.
Объясните пожалуйста сколько одновременно открытых потоков может быть
открыто? От чего это зависит?
Попробовал создать пустышки в Win2000Server - удалось открыть 2007
штук, после чего ошибка - нехватка памяти при создании потока
На компьютере ОЗУ-500Мб, так что наверное речь о другой памяти...
Каким образом работает PHP или Апачи, обрабатывающие неограниченное
количество одновременных запросов?

--
С уважением,
Andy mailto:an...@cherno.cv.ua

Alexey Cherepanov

unread,
Feb 23, 2006, 6:46:09 AM2/23/06
to
Wed Feb 22 2006 15:39, Andy wrote to All:

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. какой-то другой вариант.

Я.

Andrew V. Fionk

unread,
Feb 24, 2006, 8:37:13 AM2/24/06
to
Hello, Alexey!
You wrote to Andy on Thu, 23 Feb 2006 14:46:09 +0500:

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


Andrew V. Fionk

unread,
Feb 24, 2006, 8:35:14 AM2/24/06
to
Hello, Andy!
You wrote to All on Wed, 22 Feb 2006 16:39:38 +0500:

A> Каким образом работает PHP или Апачи, обрабатывающие неограниченное
A> количество одновременных запросов?

Да ну... генерил я как-то потоки под линуксом. Система сдохла довольно
быстро.

Andy

unread,
Feb 28, 2006, 7:24:44 AM2/28/06
to
Здравствуйте, Alexey.

Вы писали 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 системных потока?

Как обработать ошибку создания нового потока без выскакивания
стандартной ошибки системы?

Или в крайнем случае как вычислить сколько потоков еще может открыть
программа?

Andrew V. Fionik

unread,
Mar 1, 2006, 3:12:47 AM3/1/06
to
Hello, Andy!
You wrote to Alexey Cherepanov on Tue, 28 Feb 2006 15:24:44 +0500:

A> Как отловить когда закончиться адресное пространство???

Когда получишь ошибку при попытке распределения какого-нить объекта и куска
памяти.

A> Как зарезервировать его на 2-3 системных потока?

Все потоки процесса используют одно и то-же адресное пространство, но вот
стек у каждого потока свой.

A> Как обработать ошибку создания нового потока без выскакивания
A> стандартной ошибки системы?

Hикак. Если система (именно система), а не твоя программа выдает сообщение
об ошибке, то помешать ей ты не сможешь.

A> Или в крайнем случае как вычислить сколько потоков еще может открыть
A> программа?

Можно примерно оценить, по количеству свободной физической или виртуальной
памяти. Однако такая оценка будет очень приблизительной. Выделять по одному
потоку на обслуживание одного клиента - это дорого, если предполагается что
клиентов будет очень много. Когда предполагается очень большое количество
клиентов, которые соединяются с сервером, имеет смысл делать так чтобы один
поток обслуживал по очереди запросы нескольких клиентов.

With best regards, Andrew V. Fionik. E-mail: fio...@papillon.ru

0 new messages