CreateMutex | Mutex 作成のサンプルコード

Mutexの生成に関するサンプルプログラムです。

Mutexとは排他制御や同期機構のの機能を提供します。

同時に実行してはいけない場合にこのMutexを目印に排他や同期を行います。(MutexはMUTual とEXclusionの造語)

例えば何かの処理を行う時にMutexを生成します。他のスレッドが同じ処理を行う場合、すでにMutexが生成されていたら現在他の処理が進行中と判断し処理を延期、中止します。

このサンプルではMyMutexというMutexを2回作成します。2回目の作成は「すでに生成されています」というエラーで失敗します。

スポンサーリンク

Visual C++ 向けサンプルコード

//Mutex作成のサンプル

#include <windows.h>
#include <process.h>
#include <iostream>

int main()
{
HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if (hMutex == NULL)
{
printf("CreateMutex 生成エラー: %d\n", GetLastError() );
}
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("1度目のチェック。すでに MyMutex は存在します。 \n");
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("2度目のチェック。すでに MyMutex は存在します。 \n"); }

スポンサーリンク



[Visual C++ サンプルコード | 即戦力ソース集に戻る]

本サンプルコードではエラー処理を省略している場合があります。実践で使用する場合はエラー処理が必要となる場合があります。