Форум программистов, компьютерный форум CyberForum.ru

"общение" потоков - C++

Восстановить пароль Регистрация
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 268
12.03.2012, 16:27     "общение" потоков #1
Здравствуйте.
Будут два потока. оба получают 2 иттератора (для конкретности vector<int>).
нужно:
один поток находит число, меньшее данного. Останавливается. Ждёт, пока остановится второй поток.
второй находит число, большее данного. Останавливается. Ждёт, пока остановится первый поток.
потом нужно вытащить иттераторы из каждого потока (из первого it1, втого it2) и сделать
swap(it1,it2)
Не знаю...как организовать это "общение". Знаю, что для ожидания можно использовать события...
а как вытащить иттераторы...может в потоке мейн делать свап через статические переменные?
тут примерный код потоков


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
#include "stdafx.h"
#include <Windows.h>
#include <vector>
#include <iostream>
using namespace std;
 
template <typename T>
struct para
{
    T begin,end;
           int chislo;
    para (T b, T e, int n)
    {
        begin = b;
        end = e;
                      chislo = n;
    }
};
 
typedef para<vector<int>::iterator> iterator_pair;
 
 
 
 
DWORD WINAPI func(PVOID param)
{
    iterator_pair* p = static_cast< iterator_pair * > (param);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> b;
    b.push_back(5);
    b.push_back(4);
    b.push_back(3);
    b.push_back(2);
 
    iterator_pair p(b.begin() , b.end(), 3);
     
 
    HANDLE potok = CreateThread(NULL, 0, func, &p, 0, NULL);
    WaitForSingleObject(potok, INFINITE);
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 16:27     "общение" потоков
Посмотрите здесь:

Замените в слове "му" на "а", а букву "ы" на "ца". C++
C++ Заменитье буквы "a" и "o" в слове на "A" и "O".
C++ Замените буквы "а" и "о" в слове на "А" и "О".
C++ Определить, сколько в строке символов "*", ":", ";"
C++ как сделать "Старт", "Пауза", Стоп".
При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." C++
C++ Переменные "емкость", "Галлон", "Бензин"
Классы "Фигура", "Прямоугольник", "Круг" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru