タグ

セマフォに関するhenachoco-a-55のブックマーク (2)

  • 第105章

    今回は、セマフォについてやります。 セマフォはちょっと説明が難しいです。 セマフォは、現在値を持ちます。これが0以外であれば、Waitナンタラ関数 は直ちに帰ります。この時セマフォの値は1減ります。 セマフォが0になった時、Waitナンタラ関数は0より大になるまで待機します。 ロックを解放するにはReleaseSemaphore関数を使います。これにより、セマフォの値 は1増えます。 セマフォを作成するにはCreateSemaphore関数を使います。 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // セキュリティ記述子 LONG lInitialCount, // 初期カウント LONG lMaximumCount, // 最大カウント LPCTSTR lpName // オブジェクト名 );

  • 第7回 処理を中断したくない時はミューテックスやセマフォ

    Windows Embedded CE 6.0はWindows Vistaなどと同じくプリエンプティブなマルチタスクをサポートするOSであることは、前回の「第6回 マルチタスクの実行順はどうやって決めるのか」で説明しました。 マルチタスクでは、複数のスレッドを並行して処理します。そのため、複数のスレッドが1つのリソースを共有する場合には、競合しないように排他処理をしなければなりません。また、スレッドの処理の順序に依存関係があるときは、そのタイミングを制御するために同期を取る必要もあります。これらの処理を行うために用意されているのが、「同期オブジェクト」です。 Windows Embedded CE 6.0はデスクトップWindows OSと同様に「クリティカルセクション」「セマフォ」「ミューテックス」「イベント」などの同期オブジェクトをサポートしています。利用するAPIも、デスクトップWi

    第7回 処理を中断したくない時はミューテックスやセマフォ
  • 1