問題タブ [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.
cuda - CUDA: 同一ブロック内のスレッド同期
CUDA でプログラムを書き込もうとしていますが、スレッド間の同じブロックでの同期に問題があります。
モデルの状況は次のとおりです。
スレッド = 1 の場合、すべて問題ありません。スレッド数が 1 より大きい場合、無限循環。
なんで?関数 __threadfence(); 他のスレッドの t 変数の値を可視化する必要があります。
どうすれば解決できますか?
java - スレッド状態の違い
Java では、ユーザー(スリープまたは待機を呼び出す) または同期ブロックの 2 つの方法でスレッドを停止できます。スレッドが同期ブロックに入ろうとすると (他のスレッドが同じロックを取得した場合)、スレッドは動作を停止するか、ブロックされます (他のスレッドによってロックが解放されるのを待っています)。
だから私は、同期ブロックとJavaのスリープのようなユーザーメソッドによってブロックされたスレッドの状態(状態とは、スレッド変数、コンテキストなどを意味します)に違いがあるかどうかを知りたかったのです。
java - マルチスレッド アプリケーションが一時停止しているのはなぜですか?
私のマルチスレッド アプリケーションには、複数のスレッドを作成するメイン クラスがあります。メインクラスは、いくつかのスレッドを開始した後に待機します。私が作成した実行可能なクラスは、Web サービスを呼び出して、ファイルの一覧を取得し、ファイルを取得し、ファイルを削除します。スレッドが完了すると、メイン クラスに再度実行するように通知します。私の問題は、しばらくは機能しますが、おそらく 1 時間ほど後に、ログに表示される出力から run メソッドの最後に到達することです。Java プロセスはまだ実行されていますが、ログに表示されている内容に基づいて何も実行していません。
主なクラス メソッド:
主な方法
もともとインスタンスで同期を行っていましたが、メソッドに変更しました。また、Web サービス ログまたはクライアント ログにエラーが記録されていません。私の仮定は、待機して通知が間違っているか、情報の一部が欠落しているということです。
実行可能なスレッド コード:
run メソッドの最後に
別のスレッドを作成する必要がない限り、メインクラスを実行したくないため、待機および通知プロセスを実行した理由。
メイン クラスの目的は、スレッドを生成することです。このクラスには、スレッドの作成と終了を永遠に実行するための無限ループがあります。
無限ループの目的は、企業リストを継続的に更新することです。
c - CVI/Labwindowsでのスレッドの同期
2つ(またはそれ以上)のスレッドが並行して動作しています。それらの目的はハードウェアデバイスを測定することであり、外部のハードウェア刺激に依存しています。実行中のある時点で、ハードウェアデバイスをトリガーし、刺激を待ちます。しかし、私は刺激装置を1つしか持っていません。
したがって、すべてのスレッドが刺激を受け取る準備ができるまで、スレッドは待機する必要があります。ここで、別のスレッド(おそらくディスパッチングメインスレッド)がデバイスをトリガーする必要があり、スレッドは続行できます。
これを同期するためのベストプラクティスは何ですか?動的な数のスレッドで好ましいですか?
編集: CVI/Labwindowsを使用します。それはいくつかのスレッドを提供しますが、ほとんどは悪い文書化されたマクロを介して行われます。スレッドを登録し、開始し、終了するのを待つ方法を理解しました。
スレッドセーフな変数とロックを作成するためのツールもあるようです。しかし、それらの構文は私にはわかりません。したがって、私はある種のミューテックス/セマフォを自分で構築する必要があります。
ruby - Rubyでの同期バリアの実装
__synchtreads()
RubyでCUDAの関数の振る舞いを「複製」しようとしています。具体的には、N
いくつかのコードを実行する必要がある一連のスレッドがあり、実行の途中ですべてが互いに待機してから、残りのビジネスを続行します。例えば:
これを実現するには、どのツールを使用する必要がありますか?グローバルハッシュを使用してみて、すべてのスレッドがコードの最初の部分で完了したことを示すフラグを設定するまでスリープしました。正しく動作させることができませんでした。その結果、ハングとデッドロックが発生しました。との組み合わせを使う必要があると思いますMutex
が、ConditionVariable
その理由/方法がわかりません。
編集: 50ビューと答えなし!賞金の候補のように見えます...
java - 2 つのスレッド間でオブジェクトを共有する方法 (スレッド同期)?
私は2つのスレッドを持っています。音声データを変数に記録します。別のスレッドは、その記録された変数をサーバーに送信します。マルチスレッドは初めてなので、同時実行に関して何をする必要がありますか?
以下はコード スニペットです。
同じsDataにアクセスしてサーバーに送信している別のスレッド:
android - アプリケーションがクラッシュし、スレッドにエラー (致命的なシグナル) が表示される
LogCat で:
ボタンをクリックすると、スレッドを1つずつ作成するコードを書きました。複数の画面に切り替わります。ボタンを複数回タップすると、アプリが自動的に閉じます。この問題を解決するにはどうすればよいですか?
java - Java マルチスレッド交通信号の例
マルチスレッドの概念を使用して、Java で交通信号を実装しようとしています。同期を使用したい。これは私が書いたコードですが、私の期待どおりに動作しません:P .. 私が実際に行っているのは、特定の時間にどのライトをオンにするかを決定する変数「a」を取得することです。例: a==0 は赤い光を与えるはずです。その後、赤い光は "a" のロックを取得し、一定の間隔の後に値を a==1 に変更し、オレンジ色の光に切り替えます。緑色の光についても同じことが起こります。良い ..
コード:
メインクラス:
android - Androidでのスレッド同期
私は2つのサービスを持っています
- サービスA
- サービスB
- サービス c
サービス A コード:
サービス B コード
編集:サービス3が追加されました
問題は、その2つのサービスを実行するときです
それは記録し続けます
スレッドこんにちは私はテスト 1 です
スレッドこんにちは私はテスト 1 です
スレッドこんにちは私はテスト 1 です
スレッドこんにちは私はテスト 1 です
スレッドこんにちは私はテスト 1 です
スレッドこんにちは私はテスト 1 です
Service 2 のログを取得できないのはなぜですか?
qt - クリティカルセクションごとに複数の QMutex が必要ですか?
すべてのクリティカル セクションに対して 1 つの QMutex を定義する必要がありますか? または、クリティカル セクションごとに 1 つの QMutex を定義する必要がありますか?
lock(object) {...}
c SharpのようにQtに同一の概念はありますか?