2008-06-12

amachangのすごいところ(d:id:amachang:20080611)

mutexはmutual executionの略で、書籍とかには「ミューテックス」とはあまり書かない。Wikipedia(ja)くらいである。カタカナで書く場合は「ミューテック」と書くことが多い。口語では「ミューテクス」だろうがなんでもいいが「みゅーてっくつ」とか書かれると大丈夫かなと思う。charたむけんよろしく「ちゃ〜」と読んでないか心配である。「ちゃ〜配列の終端には「なる」をせっていする」とか書いてくれそうでそれは期待。

そしてPOSIX関数醍醐味であるpthread_createで引数に値を設定しない、呼び先で参照しない。せっかくのvoid*の使い方を覚える機会を捨てている。コンパイル時のエラーを消すためだけにvoid *でキャストしてないか心配である。

pthread_mutex_tは初期化する時にPTHREAD_MUTEX_INITIALIZERを使うかPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NPを使うかPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NPを使うかでもいいような気もするが、特に触れていない。pthread_mutex_init()の第2引数でNULLを指定するのもpthread_mutexattr_init()で初期化(デフォルト値)するのも複数環境でまったく挙動の違うアプリが出来上がるのでやめた方が自分の身のためなのだが。

排他がかかっているかどうかのチェックならpthread_mutex_trylock()もあるのだが、特に触れていない。

POSIXにはmutexの他に「読み込み中の読み込み」を許可するpthread_rwlock_tもあるのだが、特に触れていない。

プロセス内の排他であるmutexとプロセス間の排他であるセマフォの区別がついていない。これはすごい。

追記

申し訳ない。そんなに煽るようなつもりはなかった。忘れてくれ。自戒のためにこのエントリは残しておくよ。

amachangには頑張ってpthreadを極めてほしい。

  • × mutual execution ○ mutual exclusion ×プロセス内の排他であるmutexとプロセス間の排他であるセマフォ ○ミューテクス = バイナリセマフォ 俺の勘違い?

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん