問題タブ [concurrent-programming]

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 投票する
4 に答える
2547 参照

c# - .Net BlockingCollection.Take(2) : 一度に 2 つのアイテムを安全に削除する

いくつかの調査を行った後、Concurrent コレクションから 2 つのアイテムを効果的に削除する方法に関するフィードバックに頼っています。私の状況には、現在 BlockingCollection に配置されている UDP 経由の受信メッセージが含まれます。コレクションに 2 人のユーザーが含まれたら、安全に 2 人のユーザーを取得して処理する必要があります。以下にリストされているいくつかのアイデアを含む、いくつかの異なる手法を見てきました。私の現在の実装は以下のとおりですが、Users が 2 つのグループで処理されることを保証しながら、これを行うためのよりクリーンな方法があると考えています。これが、このシナリオでの唯一の制限です。

現在の実装:

私がやりたいのはこのようなことですが、現在、整合性を確保するために本番環境でこれをテストすることはできません.

またはさらに良い:

次に、これをどこかに実装します。

これに関する問題は、条件 (Count > 1) と、UserQueue に処理するアイテムが少なくとも 2 つあることを確認している Take(2) の間で保証できるかどうかわからないことです。着信 UDP メッセージは並行して処理されるため、ブロッキング/同時コレクションからアイテムを 2 つずつ安全にプルする方法が必要です。

これを行うためのより良い/安全な方法はありますか?

改訂されたコメント: この質問の意図した目標は、.Net 4.0 の並行コレクションから項目を処理する安定した/スレッドセーフな方法を実現することです。きれいである必要はありません。並列環境で順序付けされていない 2 のペアでアイテムを処理するタスクで安定している必要があります。

0 投票する
7 に答える
50588 参照

java - 2 つの JVM を相互に通信させる方法

次のような状況があります。

ローカル マシンで 2 つのJVM プロセス (実際javaには 2 つのスレッドではなく、別々に実行されている 2 つのプロセス) が実行されています。ProcessAそれらをと呼びましょうProcessB

お互いに通信 (データ交換) したい (たとえば、何かをするためにProcessAメッセージを送信する)。ProcessB

現在、一時ファイルを書き込むことでこの問題を回避しており、これらのプロセスはこのファイルを定期的にスキャンしてメッセージを取得しています。この解決策はあまり良くないと思います。

私が望むものを達成するためのより良い代替手段は何ですか?

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

java - なぜここで仕事をしたりしないのですか?

また、例外に null が含まれているのはなぜですか? これはhttp://www.cs.rice.edu/~wns1/papers/2006-PPoPP-SQ.pdfリスト 3からの実装です。

次のように出力されます

なぜ null になるのですか?

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

.net - ConcurentDictionary の列挙

マルチスレッドでアクセスされるメソッドで ConcurentDictionary dic を使用する場合、そのような構造で次のことを確認できます。

subscriptionsいくつかの方法で実行してもConcurrentDictionary<string, ConcurrentDictionary<long, Subscription>>変わらないので、スレッドセーブになりますか? または、次のようなロックを使用する必要があります。

正しく動作させるには?

0 投票する
4 に答える
2372 参照

java - Javaでタイムアウトを使用してブロッキングメソッド呼び出しを呼び出す

なんらかの理由でブロックするJavaのメソッドを呼び出したい。メソッドをX分間待ってから、そのメソッドを停止したいと思います。

StackOverflowで1つのソリューションを読んだので、最初のクイックスタートができました。私はここにそれを書いています:-

しかし今、私の問題は、私の関数がいくつかの例外をスローする可能性があることです。これをキャッチして、それに応じていくつかのタスクを実行する必要があります。したがって、コードで関数blockingMethod()がいくつかの例外をスローする場合、Outerクラスでそれらをキャッチするにはどうすればよいですか?

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

java - Javaでメソッドを開始/一時停止/再開する

重複の可能性:
開始/一時停止/再開/一時停止…他のクラスによって呼び出されるメソッド

Anytime k-NN分類器を実装したいのですが、「classify(...)」メソッドを特定の時間呼び出して一時停止し、メソッドが一時停止される前に利用可能な結果を​​取得して、再開する方法が見つかりません。メソッドを特定の時間、一時停止し、メソッドが一時停止される前に利用可能な結果を​​取得するなど。

前もって感謝します!

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

java - Start/Sus​​pend/Resume/Suspend ... 他のクラスから呼び出されるメソッド

Anytime k-NN 分類器を実装したいのですが、特定の時間「classify(...)」メソッドを呼び出して一時停止し、メソッドが一時停止される前に利用可能な結果を​​取得して再開する方法が見つかりません。メソッドを特定の時間実行する、一時停止する、メソッドが一時停止される前に利用可能な結果を​​取得する、など... おおよその結果を取得するためにデータ構造を使用します。アルゴリズムがデータ構造をトラバースしている間に、最終的に実際のトレーニング データ ベクトルに遭遇します。

次の方法で、メイン メソッドから 'classify(..)' メソッドを呼び出したい:

  • メソッド「classify(..)」を開始します
  • 「class_label」に初期値が割り当てられたら、メソッド「classify(..)」を一時停止します。
  • 初期ラベルを取得する
  • メソッド 'classify(..)' を X 時間続ける
  • メソッド「classify(..)」を一時停止します
  • 新しい「class_label」を取得します
  • メソッド 'classify(..)' を X 時間再開します。

前もって感謝します!

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

node.js - Heroku で最適な Node.js Concurrent Web Server はどれですか?

私は Heroku について学んだばかりで、試してみるのがとても楽しみでした。Node.js 言語でデモをすばやく組み立てたところ、問題に遭遇しました。アプリケーションをローカルで実行している場合、Apache ベンチマークは約 3500 リクエスト/秒を出力しますが、クラウド上では 10 リクエスト/秒に低下し、ネットワーク レイテンシに基づいて増減しません。これが 1 時間あたり 5 セントを要求しているパフォーマンスであるとは信じられず、私のアプリケーションがマルチスレッド化されていない可能性が非常に高いです。

これは私のcode.jsです: http://pastebin.com/hyM47Ue7

Heroku で「実行」(より高速) するには、どのような構成を適用する必要がありますか? または、node.js 用に他のどの Web サーバーを使用できますか?

このトピックに関するすべての回答に感謝します。

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

ios - iOS スレッド違反の検出?

iOS では、メイン スレッドが必要なときにバックグラウンド スレッドから API への呼び出しが行われたときに検出/発生するように設定できる NSZombies フラグに似たものがあるかどうか疑問に思っています。

ブロックを使用すると、どのスレッドが何を行っているかについて誤った仮定をしたり、間違いを犯したりする状況に陥りやすいようです。間違ったスレッドからの呼び出しを検出できるデバッグ フラグは、これらのケースを見つけるのに非常に役立ちます。

私が関心を持っているのは主に Apple のフレームワークです (Cocoa Touch)。

バグ レポート #12180446 を提出しました。

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

java - LinkedBlockingQueue と ConcurrentLinkedQueue の違いは何ですか?

私はブログを読みましたが、彼の結論が正しいかどうかはわかりません :

http://www.javacodegeeks.com/2010/09/java-best-practices-queue-battle-and.html#ixzz1seaiSLwp

提供されたパフォーマンス結果からわかるように、LinkedBlockingQueue は (要素の追加と削除) を組み合わせた最高のパフォーマンス結果を達成しており、生産者と消費者のシナリオを実装するための一番の候補になるはずです。

私のコードで lock を使用しない方が速いのではないでしょうか?

では、なぜ LinkedBlockingQueue はロックフリー Queue(ConcurrentLinkedQueue) よりも速いのでしょうか?

ありがとう !