Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
29 / 28 / 7
Регистрация: 10.07.2009
Сообщений: 317

Создание и сортировка массива в двух потоках. WinApi

30.11.2012, 11:15. Показов 1807. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Возникла необходимость передачи данных между потоками, книжки прочёл (Рихтер, Щупак), но примеры на столько примитивные, что разобраться с более сложными задачами я пока что не могу.

Собственно вопрос такой - как осуществить генерацию и сортировку массива в двух потоках (в первом генерируется массив, во втором - сортируется или тупо каждому элементу массива прибавляется скажем единица).
Функции WINAPI отличаются тем, что передача в них параметров осуществляется только через указатель на структуру (пример в книге Щупака не сильно прояснил ситуацию) - здесь я и застрял, пожалуйста, приведите пример.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2012, 11:15
Ответы с готовыми решениями:

Создание WinApi функции для нахождения максимального элемента массива в нескольких потоках
Задача состоит в следующем: ножно написать программу, которая будет находить максимальное значение массива в нескольких потоках. Я написал...

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

Создание из двух массивов одного и сортировка по возрастанию
C++ Builder . Даны два массива a и с. Из них получить массив b, в котором будут присутствовать элементы входящие как а(10), так и в c(10)....

2
 Аватар для igorrr37
2872 / 2019 / 991
Регистрация: 21.12.2010
Сообщений: 3,754
Записей в блоге: 9
30.11.2012, 22:54
Лучший ответ Сообщение было отмечено _arty_ как решение

Решение

генерация и сортировка
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
#include <iostream>
#include <tuple>
#include <Windows.h>
#include <Process.h>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
void _cdecl Sort(void* p)
{
    auto pctuple = reinterpret_cast<std::tuple<int*, int*> const*>(p);
    std::sort(std::get<0>(*pctuple), std::get<1>(*pctuple));
}
 
void _cdecl Generate(void* p)
{
    auto pctuple = reinterpret_cast<std::tuple<int*, int*> const*>(p);
    srand(time(0));
    struct Generator
    {
        int const operator()() const
        {
            return (rand() % 21 - 10);
        }
    };
    std::generate(std::get<0>(*pctuple), std::get<1>(*pctuple), Generator());
    auto hThread = reinterpret_cast<HANDLE>(_beginthread(Sort, 0, p));
    WaitForSingleObject(hThread, INFINITE);
}
 
int main()
{
    int arr[10];
    auto tuple = std::make_tuple(std::begin(arr), std::end(arr));
    auto hThread = reinterpret_cast<HANDLE>(_beginthread(Generate, 0, &tuple));
    WaitForSingleObject(hThread, INFINITE);
    for(auto const& val : arr)
    {
        std::cout << std::setw(6) << std::left << val;
    }
    return 0;
}
0
29 / 28 / 7
Регистрация: 10.07.2009
Сообщений: 317
01.12.2012, 14:11  [ТС]
Спасибо, можно дать коментарии к коду?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2012, 14:11
Помогаю со студенческими работами здесь

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

Сортировка двух векторов, создание третьего и запись в файл
Необходимо отсортировать два вектора int таким образом чтобы сохранить результат в третий вектор, выбрав только те числа которые...

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

Одинаковый id в двух потоках
#include&lt;iostream&gt; #include&lt;thread&gt; using namespace std; class background_task { public: int l; background_task(int i)...

Программа в двух потоках
Есть задание написать простейшую программу, работающую в двух потоках и выводящую хоть что-то в консоль, дабы убедиться в работоспособности...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru