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

Мьютексы, семафоры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Таблица,подсчет суммы ряда Sn и значения F(x) http://www.cyberforum.ru/cpp-beginners/thread421467.html
C НОВым ГОДОМ!!!!!! помогите пожалуйста доделать программу.. Х изменяется в диапазоне от a до b с шагом h. Вычисление суммы вести до тех пор, пока очередное слагаемое не станет меньше e, причем...
C++ рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей. Задана матрица смежности размерности N*M. С помощью процедуры и матрицы меньшей размерности найти медианы и записать в виде матрицы размерности N*M, где крайние элементы равны 0. входные данные: 6... http://www.cyberforum.ru/cpp-beginners/thread421463.html
Массивы: ручной ввод C++
Всех с НОВЫМ ГОДОМ!!!!!!!!!!!!!! но НГ,а мне надо завтра сдавать работу.... очень-очень надо.... Помогите сделать ручной ввод массива!!!!!!1 пожалуйста!!!! #include <stdio.h> #include <stdlib.h>...
C++ Ряд Тейлора С++
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х_нач до х_кон с шагом dx с точностью Экспоненты. Таблицу снабдить заголовком и...
C++ операторы hand made http://www.cyberforum.ru/cpp-beginners/thread421441.html
Можно ли создавать свои операторы для встроенных типов. Например сделать оператор который работал бы как функция abs.
C++ Студентов поступивших в нечетном году занести в список, отличный от общего Дан двусвязный список. Узел списка- информация о студенте: фамилия, год рождения, год поступления, оценки по предметам. Студентов поступивших в нечетном году занести в другой список (с удалением из... подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
02.01.2012, 15:36
Почитайте в вики что такое семафор и как его используют, потом посмотрите мой пример (просто код моей лабораторной, у меня под WINAPI было банально хоть что-то сделать с семафором, для линукса там было поинтереснее, но несмотря на всю схожесть код всё же немного будет отличаться так что те примеры не привожу).
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
#include <iostream>
#include <string>
#include <windows.h>
#include <process.h>
using namespace std;
 
string someString;
HANDLE m_hSemaphore; // Семафор для учета элементов очереди
 
unsigned __stdcall ReadFunc( void * arg)
{
    WaitForSingleObject(m_hSemaphore,INFINITE);
        cout<<"\nЯ тред 1 и я запустился потому что тред 2 изменил значение семафора.\nЗначение что было введено в треде 2:"<<someString<<"\n";
}
 
unsigned __stdcall WriteFunc( void * arg)
{
    cout<<"Я тред 2, введите какой-то текст:";
    cin>>someString;
    ReleaseSemaphore(m_hSemaphore,1, NULL); // Увеличиваем счетчик семафора на 1.
}
 
 
int main()
{
     SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    m_hSemaphore = CreateSemaphore(NULL, 0, 1000, NULL);    //начальное значение счетчика = 0
    unsigned uThreadIDs[2];
    HANDLE hThreads[2];
    hThreads[0] = (HANDLE)_beginthreadex( NULL, 0, &ReadFunc, NULL, 0,&uThreadIDs[0]);
    hThreads[1] = (HANDLE)_beginthreadex( NULL, 0, &WriteFunc, NULL, 0,&uThreadIDs[1]);
 
    WaitForMultipleObjects(2, hThreads, TRUE, INFINITE ); // без тайм-аута
    CloseHandle( m_hSemaphore);
    CloseHandle( hThreads[0] );
    CloseHandle( hThreads[1] );
    return 0;
}
Думаю дальше вам будет понятно как реализовать ваше задание.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru