2

C プログラミング言語では、セマフォを定義するために特別な sem_t 型が必要なのはなぜですか? それは整数ではありませんでしたか?sem_t はどのように定義されていますか? 関数 sem_post および sem_wait はどのように実装されていますか? EDIT:GNU Cライブラリのような実装例は素晴らしいでしょう.

4

1 に答える 1

4

セマフォは OS カーネル管理オブジェクトであるため、sem_t は OS 固有であり、シグナル/待機呼び出しも OS カーネルを呼び出す必要があるためです。

通常、セマフォは、待機中のスレッドのユニット カウントとキューによって実装されます。

于 2013-04-18T13:55:57.840 に答える