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

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

11.04.2014, 14:03. Показов 15185. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru