|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 67
|
||||||
ThreadPool - не все потоки учитываются при использовании в цикле26.12.2015, 18:00. Показов 3665. Ответов 29
При выполнении ThreadPool в цикле, после определённого количества циклов он зависает на строке 17(Monitor.Wait(workerLocker).
Точнее зависания как такового нет, он просто ждёт workerLocker, но не получает его. При этом runningWorkers = 1 (или2), где runningWorkers косвенно указывает на количество работающих потоков, которые должны бы были освободить workerLocker, но судя по всему они как то пропадают ![]() Подскажите пожалуйста более надёжный способ выяснить, есть ли рабочие потоки в ThreadPool (и их количество), или, как решить вопрос с "пропадающими потоками" при использовании в цикле.
0
|
||||||
| 26.12.2015, 18:00 | |
|
Ответы с готовыми решениями:
29
Как в ThreadPool проверить, что все потоки завершены Необходимо синхронизировать потоки (написать свой ThreadPool) Потоки, мультипоточность Task or Async/Await or ThreadPool? |
|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 67
|
||||||
| 30.12.2015, 12:40 [ТС] | ||||||
|
OwenGlendower, да, в чистом виде при малом объёме вычислений внутри потока CountdownEvent действительно быстрее. Но в случае если вычислений внутри потока много (как у меня) - то его влияние незначительно...
Но в любом случае он лучше того lock`a который я использовал. Psilon, спасибо. Похоже, ваш код самый быстрый. Но я не могу до конца разобраться с Partitioner. В случае когда мой поток принимает 1 значение при использовании:
А как в случае использования Partitioner получить элемент массива или хотя бы его индекс?
0
|
||||||
|
Master of Orion
|
|||||||||||
| 30.12.2015, 13:25 | |||||||||||
Сообщение было отмечено Andreys5 как решение
Решение
Andreys5, ну в моем примере выше просто
Добавлено через 5 минут
0
|
|||||||||||
| 30.12.2015, 15:27 | |
|
0
|
|
| 30.12.2015, 15:44 | |||
|
Не по теме:
0
|
|||
| 30.12.2015, 15:50 | |
|
0
|
|
| 30.12.2015, 16:30 | |
|
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 30.12.2015, 16:40 | ||
|
Storm23, оффтопные посты не позволяют ставить "спасибо", так-то благодарю словами
Есть у меня определённая проблема с доступом к List из большого количества потоков. С SyncRoot стало лучше, но нет-нет, да наблюдаю
0
|
||
|
Master of Orion
|
||||||
| 30.12.2015, 16:46 | ||||||
|
aquaMakc,
1) лочить нужно неиспользуемую переменную, как уже сказали выше 2) лично я избегаю lock-ов на публичные переменные, потому что вызывающий код уже мог сделать лок на Array.SyncRoot к примеру, и в таком случае я свалюсь в дедлок. Локальная переменная гарантирует то, что её лочить могу только я, и за счёт этого не будет блокировки потоков из-за кода типа
3
|
||||||
|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 67
|
|
| 30.12.2015, 17:56 [ТС] | |
|
Psilon, спасибо, всё работает.
Но после отработки цикла почти вся оперативная память остаётся забитой непонятно чем (массив для расчётов - пуст, результат - всего 1 значение).(такое ощущение что он хранит в памяти все отработанные потоки) Не подскажите, как с этим бороться?
0
|
|
|
Master of Orion
|
|
| 30.12.2015, 20:09 | |
|
Andreys5, ну, тут обычно лучше запустить профилировщик и посмотреть, что память занимает. Так-то я сказать не могу
Возможно память будет очищена по первому требованию системы (то есть объекты уже умерли, но их еще не собрал сборщик), а возможно где-то висячие ссылки остаются... Это уже нужно разбираться.
0
|
|
| 30.12.2015, 20:09 | |
|
Определение индекса массива в цикле при использовании указателей Рандомные числа выдают один и тот же результат при их использовании в цикле
ссылки с rel=nofollow учитываются при подсчете тиц? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|