Добавил:
Факультет ИКСС, группа ИКВТ-61 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LAB / WORK_8 / meta / 01 / main

.cpp
Скачиваний:
29
Добавлен:
20.02.2019
Размер:
1.14 Кб
Скачать
// Синхронизация потоков, выполняющихся в
// разных процессах, с использованинм мьютекса
#include <windows.h>
#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
    HANDLE hMutex;
    int i,j;
    // открываем мьютекс
    hMutex = OpenMutex(SYNCHRONIZE, FALSE, TEXT("DemoMutex"));

    if (hMutex == nullptr)
    {
        printf("OpenMutex error: %d\n", static_cast<int>(GetLastError()) );
        printf("\nPress any key to exit.");
        cin.get();
        return 0;
    }

    for (j = 10; j < 20; j++)
    {
        // захватываем мьютекс
        WaitForSingleObject(hMutex, INFINITE);
        cout << "I'm child: ";
        for (i = 0; i < 10; i++)
        {
            cout << j << ' ';
            cout.flush();
            Sleep(20);
        }
        cout << endl;
        // освобождаем мьютекс
        ReleaseMutex(hMutex);
    }

    // закрываем дескриптор объекта
    CloseHandle(hMutex);
    return 0;
}
Соседние файлы в папке 01
  • #
    20.02.2019814 б29.gitignore
  • #
    20.02.2019904 б2901.pro
  • #
    20.02.201924.56 Кб3001.pro.user
  • #
    20.02.20191.14 Кб29main.cpp