Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сколько пингов можно запустить одновременнно ?


yk ©   (2005-05-18 12:00:00) 

Уважаемыем Мастера!
Написала программу:
Есть файл с IP-шниками ,
программа их читает, затем создает столько потоков, сколко IP-шников и в каждом потоке запускает пинг. После тог, как пинг отработал - ввыводет IP и подпись в сети/не в сети.

По идее:
- сначала должны быть выведены IP тех компов , которые в сети
(т.к. тогда пинг отрабатывает быстрее)
- под конец - те которые не в сети.

На самом деле:
У меня IP-ников 10-12.
Похоже что в программе потоки отрабатывают в две группы,
т.к. сначала выдает часть компов в сети, затем не с сети,
затем опять которые в сети остались, затем оставшиеся не в сети
(надеюсь не очень запутанно вышло :) )

Потоки работают.


yk   (2005-05-19 11:39:00) [1]

Я сама как раз думала о таком механизме,
просто не знала ,что это пул.
Большое спасибо всем участникам дискуссии
:)


Digitman   (2005-05-18 16:58:00) [2]


> False_Delirium ©   (18.05.05 16:53) [10]


> Не только потоков.
> Если бы точным, то это не список, а механизм.


ну хорошо ... пусть будет так ... для,т.с., "для чистоты термина"


False_Delirium   (2005-05-18 16:53:00) [3]

Digitman ©   (18.05.05 16:22) [7]
пул (pool) - это просто список заранее созданных потоков, каждый из которых в каждый момент времени может быть в состоянии "занят" или "свободен.

Не только потоков.
Если бы точным, то это не список, а механизм.

Для читоты термина, чтобы автор ветки не воспринимал пул как нечто, конкретно относящееся к потокам.


Digitman   (2005-05-18 16:43:00) [4]


> .. либо добавляет поток в пул


..если пул организован как наращиваемый


Polevi   (2005-05-18 16:32:00) [5]

.. либо добавляет поток в пул


Digitman   (2005-05-18 16:22:00) [6]

пул (pool) - это просто список заранее созданных потоков, каждый из которых в каждый момент времени может быть в состоянии "занят" или "свободен"

поток "занят", если он исполняет в дан.момент времени некий "запрос" (в твоем случае пингует некий хост, адрес которого тобой ему передан неким параметром)

после завершения пинга поток переходит в состоянии "свободен"

некий пул-менеджер получает команду выполнить пинг такого-то хоста, ищет в пуле первый попавшийся свободный поток и передает ему адрес хоста, после чего поток переходит в состояние "занят" и выполняет пинг ... если свободных потоков нет, пул-менеджер либо ожидает освобождение любого из потоков в пуле либо возвращает отказ в обслуживании


False_Delirium   (2005-05-18 16:14:00) [7]

Создай некоторое ограниченное количество потоков и механизм работы и управления ими, это и будет пул(условно выражаясь).

По мере освобождения(после определения наличия компьютера в сети) ты не уничтажаешь, а передаёшь потоку новый адрес. И так пока диапазон не будет исчерпан.


yk   (2005-05-18 16:05:00) [8]

> False_Delirium
??????
ПУЛ???
А что это??


False_Delirium   (2005-05-18 15:17:00) [9]

Пул потоков.


yk   (2005-05-18 13:31:00) [10]

> Digitman
Ты прав. Исправлюсь.


Digitman   (2005-05-18 13:28:00) [11]


> затем создает столько потоков, сколко IP-шников


а если "IP-шников" будет 100000 ?
ты думаешь система создаст тебе 100000 потоков ?
наивный ..


dmitry501   (2005-05-18 13:00:00) [12]

yk ©   (18.05.05 12:00)
А никто не гарантировал, что Windows выделит время для твоих потоков одинаково и последовательно.... Как получилось, так они и отработали.


Наверх

Титульная страница Поиск, карта сайта Написать письмо