Быстрый поиск

Выбрать раздел :
Выбрать форум :
Критерии сортировки результатов поиска :
Порядок сортировки :
Искать сообщения :
 
Опции темы  Поиск в этой теме 
Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
02.07.2009 08:23
5. Thread Pool
ВНИМАНИЕ! Прием "Объяснений" закрыт. Всем преогромное спасибо за участие в конкурсе.
Судьи уже собрали свои пожитки и удалились на совещание, которое продлится до 31 Июля.
Ждите официальных результатов. Cледите за новостями на страницах ISN.

____________________________
Thread Pool (пул потоков) - это...

mt2
Всего баллов:
11,649
Статусных баллов:
11,149
коричневый пояс
06.07.2009 04:59
Рейтинг
 
#1
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

"- Отлично! Все переписываем задание, - Вовочка достал из кармана листок, на который он переписал задания, - теперь будем его решать в многопоточном режиме: ты быстрей дуй домой и в Интернет, вы двое в библиотеку, а ты карауль у выхода из класса - будешь спрашивать у выходящих их решения. Еще двое из группы поддержки остались не озадаченными, но пул потоков был уже сформирован, и Вовочке было пора возвращаться в класс на олимпиаду..."

См. полный текст

scarhand
Всего баллов:
770
Статусных баллов:
270
коричневый пояс
06.07.2009 06:53
Рейтинг
 
#2
Thread Pool. У каждого хорошего хозяина/хозяйки на кухне есть шкафчик, в котором он или она держат самые необходимые инструменты для приготовления еды (кухонный комбайн, кофеварка, смеситель, прибор для нарезки овощей, миксер, самовар :) ), вот этот шкафчик и называется пул потоков (кух.комбайн, миксер и т.д. – это потоки, которые нужны для решения часто повторяющихся задач). В роли задачи может быть: замес теста, нарезка овощей, приготовление чая/кофе и т.д.

--------
Сакидон Мстислав


serg@parallel.ru
Всего баллов:
100
Статусных баллов:
50
зеленый пояс
08.07.2009 07:16
Рейтинг
 
#3
Call-центр - типичный thread pool. Несколько (ну, как повезёт) операторов заняты принимают звонки клиентов, каждый новый звонок направляется одному из свободных операторов.


ilnarb
Всего баллов:
2,930
Статусных баллов:
2,430
коричневый пояс
08.07.2009 09:05
Рейтинг
 
#4 Ответ на #3
Цитирую -serg@parallel.ru
Call-центр - типичный thread pool. Несколько (ну, как повезёт) операторов заняты принимают звонки клиентов, каждый новый звонок направляется одному из свободных операторов.

наверное, самая точная аналогия, респект)))
--------
____________________
Борханов Ильнар


Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
08.07.2009 09:10
Рейтинг
 
#5 Ответ на #4
Цитирую -ilnarb

наверное, самая точная аналогия, респект)))

А как быть с определением правильного числа потоков в пуле? ;) Мне кажется в этом-то как раз подвох, по крайней мере я расчитывал что подвох будет в этом ;). Нужно раскрыть ту идею, благодаря которой назначение задачи одному из заранее созданных потоков эффективнее, чем создание нового потока для каждой из вновь прибывших задач.

Думайте дальше ;)



ilnarb
Всего баллов:
2,930
Статусных баллов:
2,430
коричневый пояс
08.07.2009 10:40
Рейтинг
 
#6
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

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


Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
08.07.2009 10:55
Рейтинг
 
#7 Ответ на #6
Цитирую -ilnarb

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

... что-то в этом роде. А теперь еще чтобы прочитав это я улыбнулся и запомнил навсегда. Помните еще про Анжелу? ;) http://software.intel.com/ru-ru/blogs/2008/12/25/2000464/



mt2
Всего баллов:
11,649
Статусных баллов:
11,149
коричневый пояс
09.07.2009 03:58
Рейтинг
 
#8 Ответ на #5
Цитирую -Dmitry Oganezov (Intel)

А как быть с определением правильного числа потоков в пуле? ;) Мне кажется в этом-то как раз подвох, по крайней мере я расчитывал что подвох будет в этом ;). Нужно раскрыть ту идею, благодаря которой назначение задачи одному из заранее созданных потоков эффективнее, чем создание нового потока для каждой из вновь прибывших задач.

Думайте дальше ;)

В книге S. Akhter, J.Roberts, Multi-Core Programming, Intel Press, 2006 на p.316 находим следующее определение:

"thread pool  A collection of worker threads that are used to perform independent units of work on demand. Thread pools reduce the overhead of thread creation/destruction."

И никаких подвохов :) Мне кажется, не стоит путать понятие "коллекции потоков" и способы формирования этой коллекции. Объясню на пальцах: можно, например, восхищаться коллекцией монет в музее, ничего не зная о том, как она была сформирована. Могут быть две практически одинаковые  коллекции: одна формировалась обычным способом - путем многолетней деятельности коллекционера, а другой "сформировал" ее в один день, ограбив инкассатора ;)

Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
09.07.2009 04:23
Рейтинг
 
#9 Ответ на #8
Цитирую -mt2
"thread pool  A collection of worker threads that are used to perform independent units of work on demand. Thread pools reduce the overhead of thread creation/destruction."


Хорошо, нет подвохов. Как и нет (пока) понравившегося мне объяснения концепции, выделенной в вашей же цитате жирным шрифтом.

Я ведь не прошу объяснить "thread", хотя мысль такая была ;). Я спрашиваю о "threads pool".



mt2
Всего баллов:
11,649
Статусных баллов:
11,149
коричневый пояс
09.07.2009 05:11
Рейтинг
 
#10 Ответ на #9
Цитирую -Dmitry Oganezov (Intel)

Хорошо, нет подвохов. Как и нет (пока) понравившегося мне объяснения концепции, выделенной в вашей же цитате жирным шрифтом.

Я ведь не прошу объяснить "thread", хотя мысль такая была ;). Я спрашиваю о "threads pool".

Но и в цитате нет объяснения каким образом "reduce" ;)

bojlahg
Всего баллов:
120
Статусных баллов:
70
зеленый пояс
09.07.2009 06:55
Рейтинг
 
#12
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...
На заводе штат рабочих выполняющих одну и ту же работу. Если есть работа то они ее делают, если нет то бездельничают.

bojlahg
Всего баллов:
120
Статусных баллов:
70
зеленый пояс
09.07.2009 07:00
Рейтинг
 
#13 Ответ на #12
Цитирую -bojlahg
На заводе штат рабочих выполняющих одну и ту же работу. Если есть работа то они ее делают, если нет то бездельничают.
Учитывая это: "thread pool A collection of worker threads that are used to perform independent units of work on demand. Thread pools reduce the overhead of thread creation/destruction."
Можно каждый раз нанимать рабочего на работу и после того как работа закончилась увольнять его. А если уже есть подготовленный штат рабочих, то выигрышь во времени очевиден :-)

kotbazilio
Всего баллов:
20
Зарегистрированный пользователь
09.07.2009 08:04
Рейтинг
 
#14
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...
Стоим возле ряда телефоных автоматов которые работают только с помощью специальных жетонов. У нас в кармане имеется некоторое количество этих жетонов. К каждому жетону прикреплена ниточка. Ждем клиентов. Подходит клиент и просит жетон - даем ему жетон. Клиент опускает жетон в телефонный аппарат и разговаривает. Когда разговор окончен клиент вешает трубку и уходит. Мы подходим к аппарату и за ниточку вынимаем жетон из него и кладем снова в карман. Ждем нового клиента. Если подходит несколько клиентов одновременно выдаем каждому жетоны из кармана пока будет их хватать и одновременно следим за теми жетонами которые уже можно вынимать из аппаратов и возвращать в карман.
Итого: жетон - поток, карман - пул.


aid_vat
Всего баллов:
40
Зарегистрированный пользователь
10.07.2009 11:50
Рейтинг
 
#15
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...



 Вложения 
kazantsev.a
Всего баллов:
120
Статусных баллов:
70
зеленый пояс
13.07.2009 09:35
Рейтинг
 
#16
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

 

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

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



p598
Всего баллов:
180
Статусных баллов:
130
зеленый пояс
14.07.2009 16:05
Рейтинг
 
#17
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

 Когда мы идем в столовую, мы встречаемся с пулом подносов.

 Подносы организованы в пул. Клиентов может быть намного меньше, чем подносов, и наоборот.
Когда подносов много, они лежат без дела, когда подносов мало, клиенты ждут, пока они освободятся. Число подносов, то есть размер пула, заранее определяется так, чтобы в большинстве случаев клиенты не ждали подносов. Но случаются часы пик, когда клиентов очень много. Клиент все равно будет стоять в очереди к кассе, так что траты на подносы не принесут реальных выгод.



vadik007
Всего баллов:
140
Статусных баллов:
90
зеленый пояс
14.07.2009 20:08
Рейтинг
 
#18
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

thread pool – по-моему полная аналогия столовки

Представьте (или вспомните :-)) студенческую столовку во время большой перемены: «300 голодных студентов встают в очередь (tast queue) на обслуживание в общепит из пула вечно недовольных теток (thread pool). Как только тетка-поточница (aunt thread) закончила «обсчитывать» очередного студента :), она берется за следующего. Тетошный сервис работает в «параллельном» режиме – претензии не принимаются, отсюда экстремальная производительность. У нас в столовке пул всего из 3 потоков, каждый выдаёт пиццу «тараканы inside», чай, какаву или сок, потом тетка по шине скачивает весь налик себе в cache*. Система работает стабильно и быстро, так как пул создается с утра и готовит пиццу заранее на весь день. Для того чтоб переконфигурировать пул нужно его пересоздать целиком и полностью, но по опыту он будет так работать годами и всех устраивать. Вот…

*cache (англ. в знач.: «тайник»).

PS: После такова перекуса студенты иногда формирую очередь у пула туалетов… но это совсем не наша история.

Overall performance:

= Содержать бОльший пул требует слишком много ресурсов у завхоза.
= Содержать меньший пул нельзя так как студенты невыстаивают очередь и после 2ой пары сваливают есть домой.
= Увольнять лишних теток на каникулы нельзя так как потом найдешь только еще хуже.


--------
задействуй свой Intellект


nevitas
Всего баллов:
160
Статусных баллов:
110
зеленый пояс
15.07.2009 00:39
Рейтинг
 
#19
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

 

Однажды гуси Владимир и Семен решили заработать денег, для этого они решили мыть машины в пробках. Долго и упорно наши друзья тренировались на мытье стекол, бутылок и даже друг друга... И вот пришел тот день: Семен и Владимир пошли на перекресток и принялись за дело. Поначалу все шло как по маслу, но в 6 вечера они поняли, что тысячи машин остаются непомытыми, хоть и стоят по часу в пробке, и водители уезжают обиженными.

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

С этого счастливого дня ни один Бентли не оставался грязным, и ни один гусь в компании не был обездоленным!

 


--------
Александр Невидимов


rus_and
Всего баллов:
200
Статусных баллов:
150
зеленый пояс
15.07.2009 07:13
Рейтинг
 
#20

Thread Pool (пул потоков) - это... как многополосное движение на перекрестке.

Каждый занимает полосу из расчета, куда он хочет проехать: выбор большой - на все четыре стороны! или даже больше.

Каждая полоса обслуживает свой поток движения.

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

Вы, конечно скажете, что дорожникам надо бы проложить еще пару полос для разгрузки пробок - а они вам ответят, что это дело накладное и ждать придется полгода) Широкие дороги с кучей полос - тоже не всегда здорово: проедут по ним полторы машины в сутки, а затрат на обслуживание - уйма!

 


--------
Русаков Андрей


tt-78
Всего баллов:
70
Статусных баллов:
20
зеленый пояс
15.07.2009 13:54
Рейтинг
 
#21
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...
Мафиози в итальянском ресторане едят спагетти не по одной макаронине, а сразу POOL-ом, то бишь вилку в правой руке они вонзают в гору спагетти, политых томатом и майонезом, ложку в левой руке они подставляют под зубья вилки и начинают яростно закручивать, наматывая макаронинки на зубья вилки … Почему "яростно закручивать"? Потому что невозможно оставаться спокойным перед блюдом горячих, настоящих спагетти, политых густым томатом и майонезом.


mongi
Всего баллов:
20
Зарегистрированный пользователь
17.07.2009 09:25
Рейтинг
 
#22
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

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


psylosss
Всего баллов:
160
Статусных баллов:
110
зеленый пояс
17.07.2009 09:32
Рейтинг
 
#23
Цитирую -Dmitry Oganezov (Intel)
Thread Pool (пул потоков) - это...

Thread Pool, бабушка, - это твоя газовая плита. Ты можешь на ней готовить одновременно четыре блюда. Каждая конфорка - это thread, а все четыре конфорки - это thread pool. Понимаешь, бабушка?


Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
17.07.2009 09:51
Рейтинг
 
#24 Ответ на #23
Цитирую -psylosss

Thread Pool, бабушка, - это твоя газовая плита. Ты можешь на ней готовить одновременно четыре блюда. Каждая конфорка - это thread, а все четыре конфорки - это thread pool. Понимаешь, бабушка?

И опять - см. выше. Непонятен момент оверхеда... Или иммется ввиду что когда у бабушки был простой примус, она подсчитала что 4 конфорки - нормальный пул для ее самой, дедушки, и внуков?



novulo
Всего баллов:
140
Статусных баллов:
90
зеленый пояс
17.07.2009 10:23
Рейтинг
 
#25
... -- это таксисты, которые ждут пассажиров в аэропорту.  Человек прилетел, вышел, не нужно звонить, не нужно ждать, сразу сел и поехал. Быстро! ( вот только за багажом придется потом вернуться :)

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


goremika
Всего баллов:
140
Статусных баллов:
90
зеленый пояс
17.07.2009 11:57
Рейтинг
 
#26 Ответ на #25
<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->

Мужик приехал на дачу, видит - забор не покрашен. Позвал жену, повалил на тахту, исполнил долг, подождал 9 месяцев, отпраздновал рождение сына, играл с ним, развивал, в школу отправил, тот 11 классов с папкиной помощью закончил. И вот приехали сын с отцом снова на дачу. Отец сына просит - покрась забор. Сын взял кисть и краску, начал красить. Три часа красил. Как закончил, пор с лица с тер и к отцу поворачивается, мол смотри папа какой я молодец. А батя то как достанет ствол из-за пазухи и сыну родному три пули. Пустил потом слезу, повернулся и тут глядь, а сарай то покосило, ремонтировать надо. Делать нечего, позвал жену, завалил на тахту....
Ну разве не идиот?
Куда правильней - наделал детей по мере возможностей, взрастил, воспитал. А потом сидишь, пиво пьешь. Один забор красит, другой сарай правит, третий шашлычек над углями вращает. Это и есть thread pooling. Ряд созданных и подготовленных thread'ов ждет заданий, а не создается и подготавливается отдельный thread под каждую задачу





Статистика форума

246 пользователей 277 тем и 2036 сообщений.
За последние 24 часа появилось 0 новых тем 0 новых сообщений и 0 новых пользователей

Самая популярная тема за последние 3 дня Найди ошибки. Пример 2. Больше всего ответов отправлено на сообщение Найди ошибки. Пример 2. Наибольшее количество просмотров у сообщения Здравствуйте,П

Приветствуем нового пользователя zhpn