問題タブ [semaphore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - OSXのsem_init
私はpthreadとsemaphoreライブラリを使用するいくつかのコードに取り組んでいます。このsem_init
関数は私のUbuntuマシンでは正常に機能しますが、OSXではこのsem_init
関数はまったく効果がありません。ライブラリに何か問題がありますか、それとも別の方法がありますか?これは私がテストに使用しているコードです。
値は乱数のように見え、sem_init
呼び出し後も変化しません。
c# - C# のセマフォ タイムアウト メカニズム
への呼び出しで.NETがタイムアウトを処理する方法を知っている人はいますSemaphore.WaitOne(timeout)
か?
が期待TimeoutException
されますが、MSDN のドキュメントでは、予想される例外のリストにこれが記載されておらず、どこにも記載されていないようです。
windows - セマフォにアクセス許可を設定しますか?
プロセスによってセマフォが作成されると、どのプロセス/ユーザーからもアクセスできるようになると想定しています。
特定のセマフォにアクセス制限を設定して、特定のプロセス/ユーザーのみがアクセスできるようにしたり、特定のプロセスのみがセマフォを解放できるようにすることは可能ですか?
すべてのプロセスがセマフォにアクセスできるようにすると、いくつかの問題が発生します。例: ダミー プロセスがセマフォを読み取ってロックを解放し、実際にセマフォ ロックを待機している実際のプロセスに誤ったシグナルを送信することができます。
次のコードスニペットで非常に奇妙な出力が得られるため、これらすべての質問が発生しています。
上記のプログラムを実行すると、次の出力が得られます
出力は、セマフォの作成に失敗し、セマフォを開くことさえできなかったことを示しています。指定された名前のセマフォが既に存在する場合、セマフォの作成に失敗する可能性があります。セマフォのオープンに失敗した理由がわかりません。
セマフォの作成とセマフォを開くの両方が失敗するシナリオを明確にすることができます。
c# - c#のミューテックスとセマフォとは何ですか? どこに実装する必要がありますか?
C#のミューテックスとセマフォとは? どこに実装する必要がありますか?
マルチスレッドでそれらをどのように扱うことができますか?
c - C セマフォとスレッド間の「バリア」
次の試験に備えて、以前の試験でオペレーティング システムの教授が示した問題を解こうとしています。
問題は、2 つのスレッドが同時に実行され、異なる時間で完了する可能性があることです。特定のスレッドが完了した後、他のスレッドが完了するまでブロックする必要があります。その後、実行を継続できます。
概念的には単純に思えますが、私のコードは思った通りに動作しません。
私が期待しているのは、両方のスレッドが 10 までカウントし、次に 2 つの「最終値」printf
が隣り合って発生していることです。ただし、私が見ているのは、スレッドが 10 までのカウントを終了した直後に発生する「最終値」の出力です。待機していないようです。
sem_val
また、「posting to N」で出力する整数に対して本当に奇妙な値を取得していますprintf
。たとえば、次のようになります。
アイデア/ヒントはありますか?
testing - FIFO セマフォ テスト
FIFO セマフォを実装しましたが、適切に動作していることをテスト/証明する方法が必要です。簡単なテストは、セマフォで待機しようとするいくつかのスレッドを作成し、数字を含むメッセージを出力することです。数字が正しい場合は FIFO である必要がありますが、これはそれを証明するのに十分ではありません。たまたま発生。したがって、それをテストするより良い方法が必要です。
必要に応じて、ロックまたは条件変数も使用できます。
ありがとう
c# - セマフォ制御のリソース-クリーンシャットダウンシーケンス/パターンとは
セマフォを使用してリソースのプールを制御する場合、このリソースプールのクリーンシャットダウンシーケンスは何ですか?
このプールのクリーンシャットダウンシーケンスを実装するにはどうすればよいですか?たぶん、リソースはIDisposableを使用しますが、これは最終的には機能するはずです。
semaphore - 単一セマフォによるマルチプロセス同期
私が受講しているクラスでは、マルチスレッド プログラミングについて説明しています。教授は、私が理解しようとして無駄に試みていたおまけの質問を提供しました:
プロセス P0、P1、P2、および P3 のそれぞれは、他の 3 つのプロセスがコード内の特定の同期ポイントを通過または到達するまで待機する必要があり、その後でのみ、そのプロセスは自身の同期ポイントを通過できます。
私はすでに 4 つのセマフォで質問に答える方法を知っていますが、難しいのは 1 つのセマフォだけでそれを行うことです。
続行する方法に関する提案やヒントはありますか?
multithreading - 「ベナフォア」は最新の OS に実装する価値がありますか?
BeOS プログラマーだった頃、 Benoit Schillings によるこの記事を読み、「ベナフォア」を作成する方法を説明しました: アトミック変数を使用して、共通のミューテックスを取得/解放する必要を回避するクリティカル セクションを強制する方法 (競合なし) ケース。
私はそれがかなり賢いと思いました.atomic-increment/decrementをサポートするどのプラットフォームでも同じトリックを行うことができるようです.
一方、これは標準のミューテックス実装自体に簡単に含めることができるもののように見えます...その場合、私のプログラムでこのロジックを実装することは冗長であり、何の利点もありません.
最新のロック API (pthread_mutex_lock()/pthread_mutex_unlock() など) がこのトリックを内部的に使用しているかどうかを知っている人はいますか? もしそうでなければ、なぜですか?
blackberry - Blackberry セマフォ クラス
Blackberry Java Reference でセマフォに相当するものを見つけることができないようです。私は何が欠けていますか?java.util.concurrent さえありません。
ありがとう!ショーン