|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||||||
FixedThreadPool13.01.2017, 19:05. Показов 2405. Ответов 15
Метки нет (Все метки)
Почему Шилдт говорит, что в пуле содержится два потока? Разве это не мы эти потоки в пул передаем? А изначально только указываем количество мест для потоков в пуле = 2. Сама фраза "что пул содержит", "пока в пуле не освободится поток" мне кажется странной - ведь это мы в пул кладем потоки, а экзекьютор их просто исполняет, и одновременно в данном случае он может исполнять только 2 потока одновременно. Может быть, правильнее было сказать, "пока пул не осободится" а не "пока поток не освободится в пуле"? Ведь поток в пуле отработал и ушел, а освободилось именно место для него. Или я что-то не знаю или не правильно понимаю? Спасибо
0
|
||||||
| 13.01.2017, 19:05 | |
|
Ответы с готовыми решениями:
15
Использование FixedThreadPool
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 13.01.2017, 19:31 | |
Сообщение было отмечено KEKCoGEN как решение
Решение
1
|
|
|
|
||
| 13.01.2017, 20:08 | ||
|
То что вы ваши задачи обозвали MyThread - не означает, что их будет использовать executor. Возможно вас смутило то, что сласс Thread реализует Runnable.
2
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
|||
| 13.01.2017, 20:45 | |||
|
Добавлено через 2 минуты
1
|
|||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|||||||
| 13.01.2017, 22:50 [ТС] | |||||||
|
turbanoff, да, Вы правы, спасибо, меня смутило что MyThread реализует Runnable и еще называется так - MyThread, я случайно подумал, что мы поток создаем. Мы создаем задачу (Runnable), которая, возможно, потом будет в executor'е послана на вход конструктору класса Thread чтобы создать поток
Добавлено через 3 минуты turbanoff, еще я заметил, что executor "прыгает" между потоками, т.е. несмотря на то, что на вход newFixedThreadPool() послано 2, при исполнении четырех потоков вывод в консоль перемешивается. Я думал, что он сначала возьмет две задачи, исполнит их полностью(параллельно), а потом перейдет к следующим двум посланным задачам. Но нет, вывод в консоль из 4 задач перемешивается. Получается, executor постоянно подменяет Runnable у потоков? Это разве возможно? Вот пример кода:
0
|
|||||||
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
||
| 13.01.2017, 23:20 | ||
1
|
||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|||||||
| 13.01.2017, 23:31 [ТС] | |||||||
|
Gr1f0nn, спасибо, с тем примером понял, но сейчас другой вопрос: а задачи точно исполняются в том порядке, в котором передали executor'у? Почему у меня сейчас был вывод:
0
|
|||||||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 14.01.2017, 00:40 | |
|
какая тебе разница в каком порядке он будет выполнять твои потоки? если ты запускаешь несколько потоков, ты предполагаешь что они будут выполняться параллельно, т.е. в любом порядке.
0
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 14.01.2017, 01:25 [ТС] | |
|
xoraxax, ну просто я думал что он будет выполнять задачи в том порядке, в котором они ему были посланы. Например, послали ему 10 задач. А потоков всего 3. Он возьмет первые 3, потом еще 3, потом еще 3. И именно каждую тройку будет выполнять параллельно. А получается, он сам выбирает, какие задачи выполнять первыми?
0
|
|
|
|
||||||
| 14.01.2017, 13:00 | ||||||
|
danek130995, Там внутри есть очередь. Настоящая, честная: которая добавляет к себе элементы в том порядке в котором вы их отправите.
В thread pool есть пачка потоков, которые в бесконечном цикле достают задачи из очереди и начинают выполнять. То есть достанут из очереди - они в гарантированном порядке. Но не факт, что исполнение произойдёт мгновенно и в правильном порядке. В вашем примере произошло примерно следующее:
1
|
||||||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 14.01.2017, 15:17 [ТС] | |
|
turbanoff, в последней строчке Вы, наверное, имели в виду B?
А чем занимался 2-й поток, пока 1-ый выполнял задачу A? 2-й поток взял задачу B, и остановился покурить до тех пор, пока 1-й полностью не завершит задачу A и не возьмется за C, а потом за D?) Получается, 2-й поток бездействовал пока 1-й все это выполнял? Они же должны параллельно работать
0
|
|
|
|
|||
| 14.01.2017, 17:23 | |||
|
1
|
|||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|||
| 14.01.2017, 23:13 [ТС] | |||
|
turbanoff, что такое профайлер?
Добавлено через 5 часов 27 минут turbanoff, загуглил,
0
|
|||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 14.01.2017, 23:25 | |
|
2
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 15.01.2017, 11:59 [ТС] | |
|
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 15.01.2017, 18:02 | |
|
может быть все, что угодно, но это не важно
1
|
|
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|