Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/75: Рейтинг темы: голосов - 75, средняя оценка - 4.55
20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233

Обработка массива в несколько потоков

11.04.2014, 14:03. Показов 15374. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив ArrayList. Нужно над каждым его элементом провести какие-нибудь действия (например вычислить среднее значение текущего элемента и его соседей, записывая результат в позицию среднего элемента). Эти действия нужно выполнять над всем массивом заданное число раз. Как с помощью потоков ускорить обработку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2014, 14:03
Ответы с готовыми решениями:

Обработка очереди в несколько потоков
народ, помогите с проблемой. есть два массива: первый выполняет функцию очереди, второй - конечный результат обработки. требуется...

Замедление работы потоков если запущено несколько потоков
Есть отдельный поток который движет красным квадратом. Он каждую миллисекунду меняет положение квадрата на пиксель. Есть другой поток, он...

Обработка данных в несколько потоков
Подскажите. Возможно ли на языке С++ обрабатывать какие либо данные в несколько потоков одновременно? В качестве примера допустим запуск...

22
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
14.04.2014, 13:13
Студворк — интернет-сервис помощи студентам
x_Alex_x, скорее всего проблема в CopyOnWriteArrayList - там внутри лок при изменении массива.
У вас же каждый поток обрабатывает только свою часть данных (без пересечений). Замените CopyOnWriteArrayList на обычный массив.
1
20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233
14.04.2014, 16:29  [ТС]
turbanoff, точно! Поменял на ArrayList и всё заработало как надо Я даже удивился разнице в скорости - миллиард операций за 11.5 секунд)
Вложения
Тип файла: rar multithreading.rar (1.6 Кб, 43 просмотров)
0
20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233
22.04.2014, 02:16  [ТС]
Совершенно случайно наткнулся на замечательный способ, который позволяет запускать выполнение заданного блока кода в новом потоке, и при этом не нужно создавать никаких своих специальных Runnable классов.
Java
1
2
3
4
5
new Thread() {
    public void run() {
        //код
    }
}.start();
Вдруг кому пригодится)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2014, 02:16

Обработка цикла в несколько потоков
Сначала попробую описать что мне нужно сделать: Есть список ссылок. Нужно в несколько потоков(допустим 5) отсылать данные пост...

Обработка элементов в несколько потоков: ThreadPool или еще варианты?
Во общем дело такое: Есть listview в нем N итемов, мне нужно пройтись по каждому взять данные каждого итема и записать их в файл, и хочу...

Сортировка массива используя несколько потоков
Здравствуйте. У меня есть, например, в списке 10 элементов - массивов строк, и я хочу отсортировать их в потоках, но потоков, например, 4....

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

Несколько потоков
Здравствуйте. Растолкуйте, пожалуйста, одну вещь. Допустим имеется массив из 1000 элементов и 3 потока, которые выводят на экран элемент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru