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

Мьютекс, не могу понять, сигналирован или нет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем ошибка http://www.cyberforum.ru/cpp-beginners/thread432375.html
#include <iostream> #include <string> using namespace std; int main() { string n = "Jon" string name; cin >> name; if (n == name) cout << "Строки равны" << endl;
C++ Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа Помогите решить. Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа http://www.cyberforum.ru/cpp-beginners/thread432369.html
C++ MSVCP100D.dll
Почему вылазит эта ошибка на компьютере где нет MS VS, когда я запускаю .exe файл откомпелированной проги? Добавлено через 2 минуты Сори. уже нашёл. Надо положить этот же файл в каталог, где и программа.))) Этот файл лежит в C:\Windows\System32\ Добавлено через 14 секунд Как тему удалить? Добавлено через 11 минут MSVCR100D.dll этот файл тоже требуется. и он же тоже там лежит!
Генератор чисел C++
Здравствуйте. пишу вот такую программу. Генерирует случайные числа. Но каждый раз исключая повторы. помогите. не пойму в чём дело. выводить постоянно повторы! #include "StdAfx.h" #include "conio.h" #include <cstdlib> using std::srand; using std::rand; #include <time.h>
C++ оцените как я две задачи сделал http://www.cyberforum.ru/cpp-beginners/thread432344.html
вот архив в нём код, задания и входной выходной файл для 4 задания
C++ объявление директив здравствуйте, что будет если два раза одинаково объявить директиву? Допустим #include <iostream> #include "example.h" #include "example.h" подробнее

Показать сообщение отдельно
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
21.01.2012, 14:06     Мьютекс, не могу понять, сигналирован или нет
Разработать программу, состоящую из двух потоков, работающих с общими данными, первый поток вводит с клавиатуры N целых чисел (число N также вводится пользователем), второй печатает их на экран по мере поступления. Взаимодействие между потоками синхронизировать при помощи мьютексов. В программе должна быть реализована корректная обработка ошибок системных вызовов с выдачей системного сообщения об ошибке и прекращением работы.

Не могу допереть, почему при WaitForSingleObject не ожидается первый поток
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 <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;
int N;
int *A;
HANDLE hMutex;
DWORD WINAPI ThreadFunc (void * param);
int main ()
{
    cout<<"Input N: ";
    cin>>N;
    A = new int [N];
    DWORD   dwThreadId; // ID нового потока
    //Создаём поток cохранения по таймеру
    //проверяем, создался ли поток
    hMutex = CreateMutexA(NULL, TRUE, NULL);
    HANDLE hThread = CreateThread(NULL, 0, ThreadFunc, NULL, 0, &dwThreadId); 
    if(hThread == NULL) 
    {
        perror("CreateThread failed"); 
        return 1;
    } 
    cout<<"Input massiv : ";
    for(int i = 0 ; i < N; i ++)
    {
        cin >>A[i];
        ReleaseMutex(hMutex);  
    }
    WaitForSingleObject(hMutex, INFINITE);
    CloseHandle(hMutex);
    return 0;
}
DWORD WINAPI ThreadFunc (void * param)
{
    for(int i = 0; i < N; i ++)
    {
        WaitForSingleObject(hMutex, INFINITE); // <== здесь хотелось бы что ожидался первый поток 
        ReleaseMutex(hMutex);  
        cout<<A[i];  
        hMutex = CreateMutexA(NULL, TRUE, NULL); 
    }
    ReleaseMutex(hMutex); 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru