問題タブ [thread-synchronization]

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.

0 投票する
2 に答える
280 参照

c++ - Sockets Map で読み書きロックを使用できますか?

std::map ソケット マップがあり、それがマルチスレッド アプリケーションであるとします。ソケット データを送信するためにマップ内のソケットにアクセスするスレッドは複数ありますが、データを受信するためにマップ内のソケットにアクセスするスレッドは 1 つだけであり、このスレッドはリモート エンドが閉じると SocketInfo* も削除します。

上記の状況で、読み取り/書き込みロック (pthread_rwlock_t) を使用してスレッドを同期できますか? はいの場合、pthread_mutex_t よりも多くの利点がありますか?

スティーブ

[疑似コード]

0 投票する
1 に答える
1437 参照

java - 同期のための Java のグローバル変数

私は JAVA で複数の睡眠理髪師の問題のバリエーションを書いています。この問題では、各顧客が理容師を待つための許容時間と、髪を切るための特定の時間に加えて、顧客がいないときに寝ることに加えて、各理髪師は、一定時間、一定人数のお客様の髪をカットして眠ります。

変動があるため、時間を追跡するグローバル変数の必要性を感じています。

私の質問は、時間を追跡するために静的フィールドを持つグローバル クラスを使用すると、何か問題に直面するのでしょうか? グローバル クラスが「アンロード」されると、値が null になることを読みました。これはいつ発生し、私の場合は問題になりますか? もしそうなら、他にどのような選択肢がありますか?

(Thread を拡張するメイン クラスの "while" ループで時間をインクリメントし、スレッドも拡張する Customer クラスと Barber クラスはそれを読み取るだけで済みます)。

0 投票する
2 に答える
1421 参照

multithreading - ミューテックスと同期するたびにスレッド コンテキスト スイッチが発生するのはなぜですか?

タイトなループで単一の配列を更新する複数のスレッドがあります。(デュアルコア プロセッサで 10 スレッド @ 毎秒約 100000 更新)。配列がミューテックス (WaitForSingleObject / ReleaseMutex) の保護下で更新されるたびに。私は、スレッドが配列に対して 2 つの連続した更新を行うことはないことに気付きました。つまり、同期に関連する何らかの収量が必要です。これは、毎秒約 100000 のコンテキスト スイッチが発生していることを意味し、最適とは言えません。なぜこれが起こるのですか?

0 投票する
1 に答える
1165 参照

java - Javaのオブジェクトからロックを解放する

こんにちは皆さん、これは私のコードです。直面している問題は、 を呼び出しているにもかかわらずnotifyAll、ロックを解放していないということです。理由を述べて解決策を教えてください。スレッドは初めてです。前もって感謝します。

0 投票する
2 に答える
1298 参照

java - 2 つのプロセスの同時起動

2 つのプロセスを同時に実行する必要があります。私はコードを書きました:

最初の開始:

二番目:

同じ結果で場所を変更した後。この場合、私は最初のショットを取得し、フラッシュは後で開始されます。 Thread.sleep(...);助けにならない

同時にフラッシュを開始し、すぐに写真を撮る方法は? ありがとう


次のように書かれています。

呼ばれる:

何かが間違っています。まったく機能せず、クラッシュはありませんが、ログに書き込みました:07-05 16:38:58.217: W/System.err(30934): java.io.IOException: Error running exec(). コマンド: [FlashPreview.onFlashResumeStart()] 作業ディレクトリ: null 環境: [ANDROID_SOCKET_zygote=9, SECONDARY_STORAGE=/storage/extSdCard:/storage/UsbDriveA:/storage/UsbDriveB:/storage/UsbDriveC:/storage/UsbDriveD:/storage/ UsbDriveE:/storage/UsbDriveF、ANDROID_BOOTLOGO=1、EXTERNAL_STORAGE=/storage/sdcard0、ANDROID_ASSETS=/system/app、PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin、 ASEC_MOUNTPOINT=/mnt/asec、LOOP_MOUNTPOINT=/mnt/obb、BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/framework_ext.

0 投票する
0 に答える
71 参照

java - Windowsエクスプローラーのようなディレクトリを作成し、情報をテキストファイルに保存します

みんな、すべてのファイルに関する情報を保持するテキストファイルを保持するディレクトリを作成する必要があるという問題があります。ファイルのようcreated, last modified , type etc..に、静的ファイルのこの記録を維持する必要があるまでは大したことではありません(すでにディレクトリに存在しています)。しかし、いくつかの新しいファイルが追加されるとどうなりますか?どうすれば最後に変更されたものを確認できますか? 静的ファイルの場合、最初にクラス変数をゼロに設定し、後で変数を最後に変更された値と比較します。私の質問は、新しいファイルが追加されるとどうなりますか? 新しいファイルが追加されるたびに新しいオブジェクトが作成されますか? 私はその方法を試しましたが、非常に退屈であることが判明しましたか? 私は正しい方向に進んでいますか?で行う必要がありjavaます。本当の修正で。親切に助けてください。私の疑問がはっきりしていることを願っています。前もって感謝します!

0 投票する
2 に答える
436 参照

c# - C# スレッド間の同時実行

シナリオは次のとおりです。

クラス「メインクラス」と、そのインスタンスが 2 つ (またはそれ以上) あります。

クラスには、すべてのインスタンスによって共有され、必要に応じて "lock(){...}" を使用して保護されるオブジェクト (プライベート、静的) があります。問題ありません。

クラスには2つのメソッドもあり、それらはすべてを機能させようとして私を夢中にさせています。

外部から呼び出される「メインメソッド/関数」A があるとしましょう (私はこの呼び出しを制御することも、いつ発生するかについての知識もありませんが、ほとんどの場合、呼び出しの間には非常に短いスペースがあります)。呼び出しと次の呼び出し) 両方のスレッドで。

2 番目のメソッド B もあり、これは (実行時間とコードの両方で) はるかに短いものです。

問題は次のとおりです。

t2 がメソッド A を呼び出す

t1 がメソッド A を呼び出す

t2 (メソッド A から) が t1 のメソッド B を呼び出す

t1 と t2 はブロックされます。

1 つのスレッド (t2) のメソッド B が別のスレッド (t1) のメソッド A から呼び出され、t2 がメソッド A を実行しているときにそれが行われると、何らかの形ですべてがクラッシュします。通常、両方のスレッドがブロックされます。

私はフラグ変数を使用しているので、t2 がメソッド A の実行を開始すると、t1 はこのフラグを使用して、t2 がメソッド A の実行を終了するまで t2 のメソッド B を呼び出すことができないことを認識しますが、何か不足しているようです。うまくいかないからです。

私は Java での作業に慣れていますが、C# コードの背後にはまったく同じロジックがあると思いますが、c# にはいくつかの関数または「トリック」が欠けているに違いないと思います。

これは市長の問題ではないので、この問題を解決する簡単な方法があるに違いないと思います (そして願っています)。そして、3 日経っても自分自身で大きな進歩が見られないまま、ようやくここに来て助けを求めました。

前もって感謝します。