問題タブ [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 に答える
2086 参照

.net - この新しい Axum プログラミング言語とは何ですか?

今日、Microsoft による新しい並列プログラミング言語を発表するスラッシュドットでこの記事を読みました。

この新しいプログラミング言語とは何ですか? 並列プログラミングと書いてあります。しかし、MPI、PVM、OpenMP、および同様の並列ライブラリ/フレームワークの代替/代替になるのでしょうか?

何かご意見は?

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

concurrent-programming - JavaでExecutorThreadPoolの実行を停止する方法は?

一度により多くのスレッドを同時に実行するために、Javaのエグゼキューターに取り組んでいます。実行可能なオブジェクトのセットがあり、それをエグゼキューターに割り当てます。エグゼキューターは正常に動作しており、すべてが正常です。しかし、すべてのタスクがプールで実行された後、Javaプログラムは終了しません。エグゼキューターは、いくつかを取得すると思います。スレッドを強制終了する時間です。すべてのタスクを実行した後、エグゼキュータがかかる時間を短縮するために誰か助けてください。

0 投票する
9 に答える
2627 参照

java - 並行プログラミングで Java ではなく Clojure を使用する理由

Java が並行プログラミングの機能を提供している場合、(Java の代わりに) Clojure を使用する主な利点は何ですか?

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

java - 未使用のマップ要素をクリーンアップ/削除するJavaの戦略

現在のスレッドがどのWebサイトコンテキストにあるかを設定および取得するために呼び出すことができる「マネージャー」をWebアプリに実装しています(Webサイトコンテキストが現在のサイトを表すように、サイトにホワイトラベルを付けます)

私はこれを行うための最良の戦略を見つけようとしています。現在、同時ハッシュマップでWebSiteContextsへのスレッドのストアを実装しています。

スレッドの開始時に(サーブレットフィルタを介して、または手動で設定することにより)、スレッドはそのWebSiteContextに関連付けられます。

ただし、メモリリークを回避するために、マップをクリーンアップする必要があります。したがって、1つの戦略は、マップのスレッドキーを繰り返し処理して、スレッドが「生きている」かどうかを確認し(thread.isAlive())、そうでない場合は、たとえば次のように削除することだと思います。

、しかし、これは私が避けたいものであるマップへのアクセスを同期する必要があると思います(またはそうしますか?)。

Javaのスレッドに属性を格納したり、実際にスレッドオブジェクトをキーとして持つマップをクリーンアップしたりするための「慣用的な」パターンはありますか?私はWeakReference/SoftReferencesを使用することにオープンです。実際、Thread.getCurrentThread()。setAttribute(Object、Object)に相当するものがある場合は、それは素晴らしいことです。

乾杯サイモンB

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

process - この erlang コードが機能しないのはなぜですか?


アイデアは、fib(N) プロセスを 2 つのプロセスに分割し、1 つが fib(N-2) を計算し、もう 1 つが calc を計算することです。fib(N-1)と同時にfib(N)=fib(N-1)+fib(N-2)。前のコードを実行しても何も起こらず、有限ループのようにカーソルが停止するか、結果が到着しないのを待っています。
plzzz 私は助けが必要です 私は新しい Erlang プログラマーです。よろしくお願いします :)

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

php - PHP ループ パフォーマンスの最適化

私は、ポインターの配列をループし、各項目についてそのデータを (MySQL データベースまたはフラット ファイルから) 取り込む必要がある PHP 関数を作成しています。何千回もの繰り返しが発生する可能性があるため、これを最適化するアイデアはありますか?

私の最初のアイデアは、私が作業しているキャッシュされたデータの静的な配列を持つことでした。変更すると、そのキャッシュされた配列が変更され、最後にディスクにフラッシュできます。ただし、1000 を超えるアイテムのループでは、配列に約 30 しか保持しない場合、これは役に立ちません。各項目はそれほど大きくありませんが、メモリ内に 1000 個以上あると大きすぎるため、ディスク ストレージが必要になります。

データは、シリアル化されたオブジェクトを gzip 圧縮しただけです。現在、私はデータベースを使用してデータを保存していますが、おそらくフラットファイルの方が高速になると考えています(同時実行の問題は気にせず、解析する必要はなく、解凍してシリアル化を解除するだけです)。一度に 5 つのアイテムを取得して (DB 接続を削減するため)、それらをこのキャッシュに格納するカスタム イテレータが既にあります。しかし繰り返しになりますが、何千回も繰り返す必要がある場合に 30 のキャッシュを使用しても、まったく役に立ちません。

基本的に、これらの多くのアイテムをすばやく反復処理する方法が必要です。

0 投票する
15 に答える
12926 参照

multithreading - 「デッドロック」をよりよく説明するにはどうすればよいですか?

スレッドの「デッドロック」を簡単な言葉で説明するのに苦労しているので、助けてください。「デッドロック」の最良の例 (Java など) とは? ただし、詳細に深く入り込むことはありません。私はそれが2つの反対のことを尋ねるようなものであることを知っていますが、それでも. 並行プログラミングのトレーニング経験があれば、それは素晴らしいことです。

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

multithreading - 並列プログラミング==マルチスレッドプログラミングですか?

並列プログラミング==マルチスレッドプログラミングですか?

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

java - 仕事を分配するための効率的なアルゴリズム?

説明するのは少し複雑ですが、ここまでです。基本的には、「いかに効率的に問題を部分問題に分解するか」が課題です。ここでの「効率的」とは、分割された部分問題が可能な限り大きいことを意味します。基本的に、問題を分解する必要がまったくなければ理想的です。ただし、ワーカーは問題の特定のブロックにしか取り組むことができないため、私は解散する必要があります。しかし、これをできるだけ粗くす​​る方法を見つけたいと思っています。

ここにいくつかの擬似コードがあります..

このような問題があります (Java で申し訳ありません。わからない場合は、喜んで説明します)。

そして、副問題は次のとおりです。

すると、作業はこのようになります。

これで、独自の state を持つ「Worker」のインスタンスができましたsections I have

ふぅ。

そのため、私たちは多くの を持っており、より多くのProblemWorkers常に求めていますSubProblems。私の仕事は、彼らに別れProblemsSubProblem告げることです。ただし、難しいのは、後で SubProblems のすべての結果を収集し、それらをResult全体の にマージ (削減) する必要があることProblemです。

ただし、これにはコストがかかるため、ワーカーにできるだけ大きな「チャンク」を提供したいと考えています (できるだけ多くのチャンクを持ってtargetedSectionsいます)。

完璧である必要はありません (数学的に可能な限り効率的か何か)。つまり、各計算にかかる時間を予測できないなどの理由で、完全な解決策を見つけることは不可能だと思います。しかし、これに対する優れたヒューリスティックな解決策はありますか? それとも、設計に入る前に読むことができるリソースはありますか?

どんなアドバイスでも大歓迎です!

編集:セクション割り当ても制御できるため、それを制御することは別のオプションです。基本的に、これに関する唯一の制限は、ワーカーが固定数のセクションしか持つことができないということです。

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

c - 複数のスレッドまたはスレッドを持つプロセス

各プレイヤーに順番があり、何が起こっているかに「注意を払う」必要があるゲームをシミュレートする必要があります。

これまでのところ、プレイヤーごとに 2 つのスレッドが必要であることはわかっています。1 つはプレイヤーの番までスリープし、もう 1 つは注意を払います。

私の質問は次のとおりです。各プレーヤーを「フォーク」およびフォーク上のスレッドとして機能させるべきですか、それともプレーヤー用にいくつかのスレッドを作成してそれらを何らかの方法で関連付けるべきですか?

同時実行、セマフォ、スレッドを扱うのは初めてなので、良いプラクティスやプログラミング スタイルについてよくわかりません。