問題タブ [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.
java - タスクを管理するためのJavaフレームワーク
私の質問は、論理的な依存関係を持つタスクを管理し、同時に実行するためのフレームワークがJavaに存在するかどうかです。
私のタスクは次のとおりです。独立したタスクがたくさんあります(たとえば、A、B、C、D ...)。これらはコマンドとして実装されます(コマンドパターンのように)。これらすべてのタスクを受け入れて並行して実行する一種のエグゼキュータが欲しいです。タスクは、同期または非同期で相互に依存することができます(たとえば、Cを実行できない、Aを実行する前に)。
また、スケジューラの実行に影響を与えるカスタムヒューリスティックを組み込みたいと思います。たとえば、タスクAとBがCPUを集中的に使用し、Cのメモリ消費量が多い場合、AとCを並行して実行する方が理にかなっています。 AとBを実行しています。
自分でこのようなものを構築する前に(java.util.concurrent +アノテーションベースの制約/ルールについて考えています)、誰かが私のニーズに合うプロジェクトを教えてくれるかどうか疑問に思いました。よろしくお願いします
java - Java並行プログラミングのExecutorServiceの使い方は?
リモートサーバーに画像をアップロードするために以下のコードを使用しています。以下を使用すると、すべての画像がリモートサーバーに同時にアップロードされます。
以下のコードを使用するたびに
すべての将来のオブジェクトを、runnable から戻るとすぐに futurelist に追加します (すべての画像のアップロードが完了するまで runnable で待機しません (バックグラウンドのアップロード処理が進行中です))。
しかし、上記のコードの行の下でコメントを外すたびに、すべての画像のアップロードが成功した後、実行可能から返されます。
私のコードに何か問題がありますか?一度にリモートサーバー接続を増やしても大丈夫ですか?またはサーバーに負荷がかかっていますか?並列プログラミングJavaを使用して画像をアップロードする方法?ガイダンスを教えてください?
submit()
とexecute()
関数は同じ効果がありますか?
java - 並行Java1.5以降のアクティブオブジェクトパターン
クラスを使用して並行Javaでアクティブオブジェクトパターンを開発しようとしています。java.util.concurrent
とを使用して説明しClient
ますServer
。サンプルServer
は次のとおりです。
そしてサンプルClient
:
また、Message
カプセル化の例は次のとおりです。
そして、実行中のコードのサンプル:
メッセージを伝えるために、実装の詳細をいくつか削除しました。
ここで問題となるServer
のstate
は、の場合true
、着信メッセージは待機する必要がありawait
、現在のメッセージで呼び出されます。ただし、IllegalMonitorStateException
これは、現在のメッセージが待機する現在のスレッドを所有していないことを意味します。Server
ただし、現在のメッセージはとそのスレッドプールで呼び出されるため、現在のメッセージは現在の実行スレッドにもアクセスできるため、これは奇妙だと思います。
アイデアや提案、またはを使用したこのパターンの既知の実用的な実装に最も感謝しますjava.util.concurrent
。前もって感謝します。
更新:このブログ投稿
で展開できるソリューションについて説明しました。お役に立てば幸いです。
.net - .net 4に追加されたすべての同時データ構造のリスト?
.net 4に追加されたすべての新しい同時データ構造の包括的なリストはありますか?または、System.Collections.Concurrentのような名前空間のリストですか?
java - Javaにミューテックスはありますか?
JavaにMutexオブジェクトがありますか、それとも作成する方法はありますか? 1 パーミットで初期化された Semaphore オブジェクトが役に立たないので、質問しています。この場合を考えてみましょう:
最初の取得時に例外が発生した場合、catch ブロックでの解放によって許可が増加し、セマフォはバイナリ セマフォではなくなります。
正しい方法はありますか?
上記のコードは、セマフォがバイナリになることを保証しますか?
multithreading - コンセンサス値
並行プログラミングを読んでいるときに、コンペア・アンド・スワップおよびコンペア・アンド・セット操作でコンセンサス番号という用語に出くわしました。この用語の意味を理解するのに苦労しています、誰か説明できますか?
ありがとうございました!!
multithreading - マルチコアプログラミングと並行プログラミングの違いは何ですか
誰かが私がプレゼンテーションに取り組んでいるのを手伝ってくれますか?-「マルチコアプログラミングと並行プログラミングの違い」について少し説明したいと思います。:)
ありがとう、
エーモン
concurrent-programming - stact フレームワークを使い始める
Topshelf コードを調べたところ、「stact.dll」というアセンブリが使用されていることがわかりました。これについてはあまり情報がないようです。アクターと「チャネル」を使って並行アプリケーションを構築するためのライブラリのようです。Topshelf のコードを理解するのは少し難しいと思いますが、このスタイルのプログラミングについてもっと知りたいと思っています。このライブラリを使用した経験のある人はいますか? 使い方の勉強はどうしましたか?
java - Java:スレッド化されたTCPサーバーを停止する良い方法はありますか?
TCPクライアント/サーバー通信の構造は次のとおりです。
- サーバーの起動時に、サーバーはアクセプタースレッドを開始します。アクセプタースレッドは、クライアント接続を受け入れ、ServerSocketを渡します。
- クライアント接続が到着すると、アクセプタースレッドはServerSocketでaccept()を呼び出し、クライアント処理ジョブをワーカースレッドに(エグゼキューター/スレッドプールによって)送信し、クライアントソケットを提供します。
- ループ内のワーカーは、クライアントソケットストリームからデータを読み取り、それを処理して応答を送信します。
問題は、システム全体を適切に停止する方法です。ServerSocketを閉じるだけでアクセプタースレッドを停止できます。これにより、accept()ブロッキング呼び出しがSocketExceptionをスローします。しかし、どのように労働者を止めるのですか?彼らはストリームから読み取り、この呼び出しはブロックされています。これによると、ストリームはInterruptedExceptionをスローしないため、workerをinterrupt()することはできません。
別のスレッドからワーカーソケットを閉じる必要があるようですよね?このためには、ソケットをパブリックフィールドにするか、ワーカーにソケットを閉じるためのメソッドを提供する必要があります。これはいいですか?それとも私のデザイン全体に欠陥があるのでしょうか?
objective-c - メソッド呼び出しは、呼び出されたときに引数を保持しますか?
Objective-C で引数を指定してメソッドを呼び出し、引数のあとがきを解放するとします。
行が線形に処理されるため、 method1 が終了した後に引数が解放されることがわかります。しかし、バックグラウンドスレッドでメソッドを呼び出すと:
そして、バックグラウンド ジョブが何かの引数を使用している間、メイン スレッドはオブジェクトを解放します (メソッドが呼び出される前に、retainCount が 1 になることが受け入れられます)。ゾンビの使用 (既に割り当てが解除されているオブジェクトの使用) のために、エラーが発生する可能性はありますか?
質問は:
メソッド呼び出しは、引数であるオブジェクトに対して保持されますか? または、上記の問題のような場合、メソッドの先頭で保持を呼び出す必要がありますか?