Добавил:
Andrew1992
Факультет ИКСС, группа ИКВТ-61
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
// Синхронизация потоков, выполняющихся в
// разных процессах, с использованинм мьютекса
#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);
for (i = 0; i < 10; i++)
{
cout << j << ' ';
cout.flush();
Sleep(5);
}
cout << endl;
// освобождаем мьютекс
ReleaseMutex(hMutex);
}
// закрываем дескриптор объекта
CloseHandle(hMutex);
return 0;
}