問題タブ [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 投票する
3 に答える
2203 参照

cuda - CUDA: 同一ブロック内のスレッド同期

CUDA でプログラムを書き込もうとしていますが、スレッド間の同じブロックでの同期に問題があります。

モデルの状況は次のとおりです。

スレッド = 1 の場合、すべて問題ありません。スレッド数が 1 より大きい場合、無限循環。

なんで?関数 __threadfence(); 他のスレッドの t 変数の値を可視化する必要があります。

どうすれば解決できますか?

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

java - スレッド状態の違い

Java では、ユーザー(スリープまたは待機を呼び出す) または同期ブロックの 2 つの方法でスレッドを停止できます。スレッドが同期ブロックに入ろうとすると (他のスレッドが同じロックを取得した場合)、スレッドは動作を停止するか、ブロックされます (他のスレッドによってロックが解放されるのを待っています)。

だから私は、同期ブロックとJavaのスリープのようなユーザーメソッドによってブロックされたスレッドの状態(状態とは、スレッド変数、コンテキストなどを意味します)に違いがあるかどうかを知りたかったのです。

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

java - マルチスレッド アプリケーションが一時停止しているのはなぜですか?

私のマルチスレッド アプリケーションには、複数のスレッドを作成するメイン クラスがあります。メインクラスは、いくつかのスレッドを開始した後に待機します。私が作成した実行可能なクラスは、Web サービスを呼び出して、ファイルの一覧を取得し、ファイルを取得し、ファイルを削除します。スレッドが完了すると、メイン クラスに再度実行するように通知します。私の問題は、しばらくは機能しますが、おそらく 1 時間ほど後に、ログに表示される出力から run メソッドの最後に到達することです。Java プロセスはまだ実行されていますが、ログに表示されている内容に基づいて何も実行していません。

主なクラス メソッド:

主な方法

もともとインスタンスで同期を行っていましたが、メソッドに変更しました。また、Web サービス ログまたはクライアント ログにエラーが記録されていません。私の仮定は、待機して通知が間違っているか、情報の一部が欠落しているということです。

実行可能なスレッド コード:

run メソッドの最後に

別のスレッドを作成する必要がない限り、メインクラスを実行したくないため、待機および通知プロセスを実行した理由。

メイン クラスの目的は、スレッドを生成することです。このクラスには、スレッドの作成と終了を永遠に実行するための無限ループがあります。

無限ループの目的は、企業リストを継続的に更新することです。

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

c - CVI/Labwindowsでのスレッドの同期

2つ(またはそれ以上)のスレッドが並行して動作しています。それらの目的はハードウェアデバイスを測定することであり、外部のハードウェア刺激に依存しています。実行中のある時点で、ハードウェアデバイスをトリガーし、刺激を待ちます。しかし、私は刺激装置を1つしか持っていません。

したがって、すべてのスレッドが刺激を受け取る準備ができるまで、スレッドは待機する必要があります。ここで、別のスレッド(おそらくディスパッチングメインスレッド)がデバイスをトリガーする必要があり、スレッドは続行できます。

これを同期するためのベストプラクティスは何ですか?動的な数のスレッドで好ましいですか?

編集: CVI/Labwindowsを使用します。それはいくつかのスレッドを提供しますが、ほとんどは悪い文書化されたマクロを介して行われます。スレッドを登録し、開始し、終了するのを待つ方法を理解しました。

スレッドセーフな変数とロックを作成するためのツールもあるようです。しかし、それらの構文は私にはわかりません。したがって、私はある種のミューテックス/セマフォを自分で構築する必要があります。

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

ruby - Rubyでの同期バリアの実装

__synchtreads()RubyでCUDAの関数の振る舞いを「複製」しようとしています。具体的には、Nいくつかのコードを実行する必要がある一連のスレッドがあり、実行の途中ですべてが互いに待機してから、残りのビジネスを続行します。例えば:

これを実現するには、どのツールを使用する必要がありますか?グローバルハッシュを使用してみて、すべてのスレッドがコードの最初の部分で完了したことを示すフラグを設定するまでスリープしました。正しく動作させることができませんでした。その結果、ハングとデッドロックが発生しました。との組み合わせを使う必要があると思いますMutexが、ConditionVariableその理由/方法がわかりません。

編集: 50ビューと答えなし!賞金の候補のように見えます...

0 投票する
3 に答える
5344 参照

java - 2 つのスレッド間でオブジェクトを共有する方法 (スレッド同期)?

私は2つのスレッドを持っています。音声データを変数に記録します。別のスレッドは、その記録された変数をサーバーに送信します。マルチスレッドは初めてなので、同時実行に関して何をする必要がありますか?

以下はコード スニペットです。

同じsDataにアクセスしてサーバーに送信している別のスレッド:

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

android - アプリケーションがクラッシュし、スレッドにエラー (致命的なシグナル) が表示される

LogCat で:

ボタンをクリックすると、スレッドを1つずつ作成するコードを書きました。複数の画面に切り替わります。ボタンを複数回タップすると、アプリが自動的に閉じます。この問題を解決するにはどうすればよいですか?

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

java - Java マルチスレッド交通信号の例

マルチスレッドの概念を使用して、Java で交通信号を実装しようとしています。同期を使用したい。これは私が書いたコードですが、私の期待どおりに動作しません:P .. 私が実際に行っているのは、特定の時間にどのライトをオンにするかを決定する変数「a」を取得することです。例: a==0 は赤い光を与えるはずです。その後、赤い光は "a" のロックを取得し、一定の間隔の後に値を a==1 に変更し、オレンジ色の光に切り替えます。緑色の光についても同じことが起こります。良い ..

コード:

メインクラス:

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

android - Androidでのスレッド同期

私は2つのサービスを持っています

  1. サービスA
  2. サービスB
  3. サービス c

サービス A コード:

サービス B コード

編集:サービス3が追加されました

問題は、その2つのサービスを実行するときです

それは記録し続けます

スレッドこんにちは私はテスト 1 です

スレッドこんにちは私はテスト 1 です

スレッドこんにちは私はテスト 1 です

スレッドこんにちは私はテスト 1 です

スレッドこんにちは私はテスト 1 です

スレッドこんにちは私はテスト 1 です

Service 2 のログを取得できないのはなぜですか?

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

qt - クリティカルセクションごとに複数の QMutex が必要ですか?

すべてのクリティカル セクションに対して 1 つの QMutex を定義する必要がありますか? または、クリティカル セクションごとに 1 つの QMutex を定義する必要がありますか?

lock(object) {...}c SharpのようにQtに同一の概念はありますか?