「ロックディレクトリ」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
4行目: | 4行目: | ||
「まともな[[OS]]では、[[ファイル]]の操作は明示しない限り排他的ではないが、[[ディレクトリ]]の操作は常に排他的である」という特徴を利用した[[排他制御]]の方法である。 | 「まともな[[OS]]では、[[ファイル]]の操作は明示しない限り排他的ではないが、[[ディレクトリ]]の操作は常に排他的である」という特徴を利用した[[排他制御]]の方法である。 | ||
− | + | つまりディレクトリの作成はOSレベルで強制的にシングルスレッドで実行されるという特性を利用している。 | |
<source> | <source> | ||
if ( !mkdir("/tmp/lock") ) | if ( !mkdir("/tmp/lock") ) |
2020年2月10日 (月) 03:11時点における最新版
ロックディレクトリとは、ディレクトリの作成と削除を使った排他制御の実装方法のひとつである。
概要[編集 | ソースを編集]
「まともなOSでは、ファイルの操作は明示しない限り排他的ではないが、ディレクトリの操作は常に排他的である」という特徴を利用した排他制御の方法である。
つまりディレクトリの作成はOSレベルで強制的にシングルスレッドで実行されるという特性を利用している。
if ( !mkdir("/tmp/lock") )
{// ロック失敗
}
else
{// ロック成功
}
排他制御の実装方法としてUNIX系では一般的なflock関数に相当するものがないWindowsでも ソースコードを分岐させずに、かつ簡潔明瞭に実装できるとして人気がある。