Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.04.2017
Сообщений: 49

Создание потоков

05.11.2018, 18:51. Показов 1296. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая принимает в качестве параметров набор имен файлов данных (произвольное число) и запускает все файлы на параллельную обработку (используя треды, нити, потоки). В качестве обработки использовать метод решения системы нелинейных уравнений метод касательных

Метод решения системы написал,а вот как в потоками работать,не могу понять.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2018, 18:51
Ответы с готовыми решениями:

Создание двух потоков в цикле
Помогите пожалуйста, приведите пример: программа создает 2 потока в цикле. А то на си примеров по потокам не очень много и если можете...

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

Создание потоков
Всем доброго времени суток. Как всегда, последняя надежда на этот сайт. Сразу к делу: Написать программу, которая принимает в качестве...

4
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
06.11.2018, 09:28
Цитата Сообщение от Zevole Посмотреть сообщение
Метод решения системы написал,а вот как в потоками работать,не могу понять.
Приводим свой код к виду:
C
1
2
3
4
5
int main(int argc, char **argv) {
    while (*++argv)
        handle_one_file(*argv);
    return (0);
}
читаем man pthread_create и pthread_join
заводим массив
C
1
pthread_t threads = malloc(sizeof(pthread_t) * argc);
меняем вызов handle_one_file() на pthread_create() Перед выходом из программы делаем pthread_join() по всему массиву threads, не забываем проверять ошибки. Будут конкретные вопросы - не стесняйся.
0
0 / 0 / 0
Регистрация: 25.04.2017
Сообщений: 49
06.11.2018, 23:30  [ТС]
Не понимаю как их добавить,пишу в main char **argv прога не компилируется.
C
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
69
70
71
#include <stdio.h>
#include <stdlib.h>
 
 
void quickSort(int *b, int left, int right)
{
    int sort;
    int Dleft = left;
    int Dright = right;
    sort = b[left];
    while (left < right)
    {
        while ((b[right] >= sort) && (left < right))
            right--;
        if (left != right)
        {
            b[left] = b[right];
            left++;
        }
        while ((b[left] <= sort) && (left < right))
            left++;
        if (left != right)
        {
            b[right] = b[left];
            right--;
        }
    }
    b[left] = sort;
    sort = left;
    left = Dleft;
    right = Dright;
    if (right > sort)
        quickSort(b, left, sort - 1);
    if (right > sort)
        quickSort(b, sort + 1, right);
}
 
void FileToArray(char *name)
{
    int i = 0, j = 0;
    int *a = (int*)malloc(sizeof(int) * 2);
    FILE *f = fopen(name, "r+");
    while (feof(f) == 0)
    {
        fscanf(f, "%d", &a[i]);
        i++;
        a = (int*)realloc(a, sizeof(int)*i + 1);
    }
    printf("\n%s\n", name);
    for (j; j < i; j++)
    {
        printf("%d\n", a[j]);
    }
    fclose(f);
    quickSort(a, 0, i - 1);
    printf("\n\n");
    for (j = 0; j < i; j++)
        printf("%d\n", a[j]);
}
 
int main(int argc,char *argv[])
{
    int n, i;
    n = argc - 2;
    for (i = 2; i < n + 2; i++)
    {
        FileToArray(argv[i]);
        printf("%s\n", argv[i]);
    }
    return;
}
0
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
07.11.2018, 09:00
Цитата Сообщение от Zevole Посмотреть сообщение
Не понимаю как их добавить,пишу в main char **argv прога не компилируется.
Это не страшно, так тоже пойдет. Теперь нужно добавить в main() массив под thread_t, привести FileToArray к виду void* FileToArray(void *arg) и придумать как объяснить почему вместо
Цитата Сообщение от Zevole Посмотреть сообщение
использовать метод решения системы нелинейных уравнений метод касательных
тут сортировка.
0
0 / 0 / 0
Регистрация: 25.04.2017
Сообщений: 49
07.11.2018, 10:11  [ТС]
prik, там сортировка должна быть,я просто не тот вариант написал сюда,сама идею заключается в потоках.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2018, 10:11
Помогаю со студенческими работами здесь

Создание потоков
Нужно написать программу, которая порождает 2 потока. Один записывает информацию в именованный канал, а второй читает её оттуда. Вроде...

Создание потоков
Привет всем. Есть программа в которой количество используемых потоков должно определятся непосредственно в процессе работы. Можно ли...

Создание потоков
Напишите программу, которая создает поток. Используйте атрибуты по умолчанию. Родительский и вновь созданный поток должны распечатать...

Создание потоков
Добрый день! Начала знакомство с GPSS и возникли проблемы. Необходимо смоделировать поток событий на , где T=190 , в котором промежутки...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru