20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233

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

11.04.2014, 14:03. Показов 15253. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru