![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сколько пингов можно запустить одновременнно ?
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 выделит время для твоих потоков одинаково и последовательно.... Как получилось, так они и отработали.