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

Написать программу, создающую два потока, которые выполняются в одном адресном пространстве (в одном процессе) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразование строчных букв в прописные http://www.cyberforum.ru/cpp-beginners/thread409424.html
Помогите с программой: Написать программу, которая во введённой с клавиатуры строке преобразует строчные буквы русского алфавита в прописные за счёт использования двумерной матрицы соответствия T.
C++ Игра Лабиринт Пишу простейшую игру лабиринт.Поле загружаю из файла, курсор двигаю клавишами через SetConsoleCursorPosition, как сделать ограничение на движение курсора в те места где некие "стены" моего лабиринта? http://www.cyberforum.ru/cpp-beginners/thread409422.html
SAve method C++
Доброго времени суток всем! Разрабатываю программу MDI приложения в Visual C++. Возникли сложности с сохранением, а точнее с методом Save, то есть без вызова SaveFileDialog. Подскажите как...
C++ ребят помогите пожалуйста.СРОЧНО
:kiss: прогрммка: Вводим с клавиатуры арифметическое выражение типа 1+45+(4-7)... На выходе ответ. Ребят ну пожалуйста.очень надо.
C++ Абстрактный базовый класс(задача) http://www.cyberforum.ru/cpp-beginners/thread409399.html
Дано задание :Определите абстрактный базовый класс Person,содержащий поля "пол","возраст". Затем определите производный класс Student, описывающий типичного студента (курс, группа, номер в журнале)....
C++ Алгоритм Рабина-Карпа, нужны комментарии к коду Привет всем. Столкнулся с задачей разобраться с кодом алгоритма рабина карпа. Объясните пожалуйста как в данной программе он работает. /* Рабина-Карпа строку алгоритме сопоставления -... подробнее

Показать сообщение отдельно
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
18.12.2011, 14:08
Цитата Сообщение от final_sleep Посмотреть сообщение
1-й поток суммирует
2-й поток выводит
1-й поток суммирует
2-й поток выводит
ну вот такое что-то.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while(true) {
    EnterCriticalSection(&cs);
        for(int i=0;i<5;i++)
        ar[0]+=ar[i];
    LeaveCriticalSection(&cs);
        if(ar[0]>100)break;
        Sleep(50);//передали управление в поток показа
.....................
Sleep(50);//дали возможность взять управление потоку суммирования
    while(true) {
        EnterCriticalSection(&cs);
        for(int i=0;i<5;i++)
        cout<<ar[i]<<" ";//вывели результат
        cout<<endl;
        LeaveCriticalSection(&cs);
        if(ar[0]>100)break;
        Sleep(50);//для однозначности передачи управления в поток суммирования
    }
    }
Добавлено через 13 минут
Несколько слов о вышем коде.
1)Вы не используете семафоры!
2)У вас присутствует банальный выход за пределы массива
C++
1
2
3
HANDLE THR[1];
        THR[0]=CreateThread(NULL, 0, SUM, NULL, 0, NULL);
    THR[1]=CreateThread(NULL, 0, PRINT, NULL , 0, NULL);
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru