Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 50

Сложение матриц потоками

18.01.2023, 16:18. Показов 405. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа считывает матрицы с файла, а также пользователь вводит количество потоков необходимых для их сложения. Как можно реализовать многопоточное сложение строк матриц?
Вот, что уже реализовано:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        int qu1 = 0;
        String newLine;
        File f1 = new File(TextMatrix1.getText()); //считывание первой матрицы
        try ( BufferedReader br = new BufferedReader(new FileReader(f1))) {
            Scanner sc = new Scanner(f1);
            while ((newLine = br.readLine()) != null) {
                Thread[] threads = new Thread[Integer.parseInt(TextQuantity.getText())]; //количество потоков
                for (int i = 0; i < threads.length; i++) {
                    threads[i] = new Thread(new Runnable() {
                        public void run() {
 
                        }
                    });
                    System.out.println(newLine + " " + qu1);
                    threads[i].start();
                }
            }
        } catch (Exception e) {
 
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2023, 16:18
Ответы с готовыми решениями:

Сложение двух матриц
Здравствуйте, по лабе задали создать класс, который выполняет сложение двух матриц с заданным типо данных. Попробовал написать, эклипс...

Сложение элементов двух матриц
Помогите пожалуйста, весь интернет перерыл, не могу никак написать программу, которая складывает элементы двух матриц.:(

Сложение матриц, прочтенных из файла
стоит задача сложить матрицы размером 3х3, прочтенные из файла, куда вносятся значения вручную. задача связанна с текстовыми потоками,...

2
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
18.01.2023, 16:48
Отправляйте в пул потоков строки от первой и от второй. В главном собираете всё в кучу
0
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 50
18.01.2023, 22:17  [ТС]
brian778, а как можно построчно передавать значения потокам?

Добавлено через 3 часа 26 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
        String str1 = "";
        int qu1 = 0;
        String newLine1;
        File f1 = new File(TextMatrix1.getText());
        String str2 = "";
        int qu2 = 0;
        String newLine2;
        File f2 = new File(TextMatrix2.getText());
 
        try ( BufferedReader br = new BufferedReader(new FileReader(f1))) {
            Scanner sc = new Scanner(f1);
            while ((newLine1 = br.readLine()) != null) {
                str1 = str1 + " " + newLine1;
                qu1++;
            }
        } catch (Exception e) {
 
        }
 
        try ( BufferedReader br = new BufferedReader(new FileReader(f2))) {
            Scanner sc = new Scanner(f2);
            while ((newLine2 = br.readLine()) != null) {
                str2 = str2 + " " + newLine2;
                qu2++;
            }
        } catch (Exception e) {
 
        }
 
        str1 = str1.substring(1, str1.length());
        str2 = str2.substring(1, str2.length());
        quantity = qu1 + qu1;
 
        for (int i = 0; i < str1.length(); i++) {
            char c1 = str1.charAt(i);
            char c2 = str2.charAt(i);
            matrix1[i] = String.valueOf(c1);
            matrix2[i] = String.valueOf(c2);
        }
        if (Integer.parseInt(TextQuantity.getText()) >= qu1) {
            JOptionPane.showMessageDialog(rootPane, "Неправильно указано количество потоков", "Ошибка", JOptionPane.ERROR_MESSAGE);
            return;
        } else {
 
            Thread[] threads = new Thread[Integer.parseInt(TextQuantity.getText())];
            for (int j = threads.length - 1; j < quantity; j++) {
                for (int i = 0; i < threads.length; i++) {
                    threads[i] = new Thread(new Runnable() {
                        public void run() {
                            if (matrix1[num] != null) {
                                if (Character.isDigit(matrix1[num].charAt(0))) {
                                    double result = Double.parseDouble(matrix1[num]) + Double.parseDouble(matrix2[num]);
                                    matrix3[num] = Double.toString(result);
                                }
                            }
                        }
                    });
                    System.out.println("Поток №" + (i + 1) + ", строка №" + i + ", результат сложения: " + matrix3[num]);
                    num++;
                    threads[i].start();
 
                    if ((j + 1) == qu1) {
                        i = threads.length;
                    }
                }
 
            }
        }
Теперь код выглядит как-то так, но потокового сложения все равно нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2023, 22:17
Помогаю со студенческими работами здесь

Сложение и вычитание двух квадратных матриц
Искала по форуму, но не нашла. Как сложить и вычесть две квадратные матрицы(&quot;общий&quot; код (без определенных чисел))? Помогите,...

Перемножение матриц, умножение матриц на вектор, сложение матриц
Помогите пожалуйста написать программу, которая производит основные действия с матрицами произвольных размеров (перемножения 2х матриц,...

Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере
транспонирование, умножение матриц, сложение матриц; B^3-A^T Реализовать в одной программере. Помогите решить

Скалярное произведение векторов, сложение матриц, транспонирование матриц
Необходимо составить что то вроде калькулятора с процедурами, что бы вычислял скалярное произведение векторов, сложение матриц,...

Параллельное программирование.Сложение матриц. Для задания значений элементов матриц используется рандом чисел
Посмотрев несколько книг,я не нашел или не понял как мне получить результат. PROGRAM RAND REAL A, A_RAND(0:3) REAL B, B_RAND(0:3) ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru