問題タブ [fork-join]
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 - Fork-joinでのメモリの可視性
Brian Goetzは、fork-joinに関する素晴らしい記事をhttp://www.ibm.com/developerworks/java/library/j-jtp03048.htmlに書いています。その中で、彼はフォークジョインメカニズムを使用したマージソートアルゴリズムをリストしています。このアルゴリズムでは、配列の両側で並列にソートを実行し、結果をマージします。
アルゴリズムは、同じ配列の2つの異なるセクションで同時にソートします。可視性を維持するためにAtomicIntegerArrayまたはその他のメカニズムが必要ないのはなぜですか?一方のスレッドがもう一方のスレッドによって行われた書き込みを確認するという保証はありますか、それともこれは微妙なバグですか?フォローアップとして、ScalaのForkJoinSchedulerもこの保証をしますか?
ありがとう!
c++ - Linux のプロセス間のファイル I/O?
そのため、テープ上のいくつかのファイルを管理しようとしている Linux プロセスがあります。次のコードは、テープ上の現在のアーカイブからファイル catalog.xml を抽出し、それを固定の場所にコピーしようとします (最終的には、ファイルを解析し、結果を処理します)。しかし、私のコードは断続的に正しく動作しません。tar コマンドは常に成功します (ファイル システムをチェックすると、catalog.xml ファイルが表示されます) が、ファイルが存在するかどうかを確認するフォローアップ チェックで false が返されることがあります。私は明らかに間違ったことをしていますか?おそらく、fork() されたプロセスが返されることと、そのプロセスの結果がファイル システムに表示されることとの間で競合状態が発生しているようです。呼び出す必要があるものはありますか?
そして、「ファイルが存在します!」というメッセージが表示されます。または「ファイルが存在しません!」、一見ランダムです。
その他の注意事項: 失敗した場合:
- を実行する
stat ("/tmp/catalog.xml")
と、-1 が返され、errno が ENOENT に設定されます。 - tar コマンド (-v フラグを指定して実行) は、予期される 1 行の出力 (「catalog.xml」) を生成します。
/tmp はローカルの tmpfs ファイルシステムです。テープ ドライブはローカル デバイスです。x86_64ボックスでg ++ 4.1.2で2.6.30.9 Linuxカーネルを使用しています。
前もって感謝します!
groovy - GParsPool runForkJoin での ConcurrentException/NullPointerException
ちょっとした文脈で、優れたGParsPool Fork/Joinサポートを使用して、Project Eulerの問題31を解決しようとしています。
そのために、私はばかげたコードを書きました:
残念ながら、これを実行しようとするたびに、次のスタック トレースが表示されます。
再帰の「フラット化」メカニズムとして Fork/Join を利用したい方法と関係があることは理解していますが、ここで行っているエラーは何ですか?
java - Java fork -join フレームワークはどのようにタスクをプロセッサに割り当てますか?
Java fork-join フレームワークがタスクをプロセッサに割り当てる方法を誰でも説明できますか? 私たちはそれを制御できますか?
java - ForkJoinPool 非同期モードとは
ForkJoinPool の非同期モードとはどういう意味ですか? Javadoc は、LIFO の代わりにキュー (スレッドごとのキューですか?) FIFO を作成すると述べています。実際にはどういう意味ですか?
java - Java 1.5 の fork join フレームワーク用の backport-util はありますか?
同時実行ユーティリティが導入されたとき、backport-util がありました。Java 1.6 には、fork/join フレームワークの実装があります http://www.cs.washington.edu/homes/djg/teachingMaterials/grossmanSPAC_forkJoinFramework.html
Java 1.5 に代わるものはありますか?
c - cフォーク、実行、getpidの問題
私はc言語とLinuxが初めてです。fork()、getpid()、および exec() 関数に関連する問題があります。fork() 呼び出しを使用して ac プログラムを作成しました。私のプログラムのコードは次のコードです。
このプログラムの出力は次のとおりです。
子プロセスが作成されます
これは子プロセスの試行です
子プロセスが作成されます
これは子プロセスの試行です
今、私の質問は次のとおりです。
- プログラムの出力が同じことを 2 回表示するのはなぜですか? 「子プロセスが作成されました。これは子プロセスの試行です」となるはずの出力
- 出力がコードに従っていないのはなぜですか?
- 4 つのプロセスがあり、すべてのプロセスが異なるタスクを実行するプログラムを作成できますか。たとえば、1 つのプロセスが「私の名前」を出力します。1 つのプロセスは "my age" を出力し、もう 1 つのプロセスは "my address ?
- メイン関数で複数のプロセスを作成する方法は?
- 複数のプロセスの実行を制御するには?
- 関数は何をし
exec()
ますか?exec()
の動作をソースコードfork()
で説明してもらえますか?getpid()
この初心者を助けてください。
workflow - ブランチを並列アクティビティに動的に追加するにはどうすればよいですか
インデント フローを処理する wwf を使用して実装されたステート マシンがあります。ユーザーによって登録されたインデントがあり、さまざまなベンダーに問い合わせを送信したいとします。問い合わせの数はさまざまで、バイヤーが問い合わせたいベンダーの数によって異なります。そのため、私のステート マシンは「問い合わせ待ち」という名前の状態になり、ここでフォークが必要になり、このフォーク間で状態が異なります (ネストされたステート マシンを追加するには) 並列アクティビティを追加していますが、前述のように、この並列アクティビティのブランチは選択したベンダーに依存しています。ブランチを動的に追加しようとすると、ワークフローが永続化されたものと一致しないため、例外が発生します。 1。解決策はありますか?
java-7 - フォーク/ジョインまたは分割統治の興味深い例
カンファレンス ワークショップで新しい JDK7 Fork/Join Framework を紹介したいと考えています。このために、私たちは現在、フレームワークで何ができるかという興味深い例を探しています。
並べ替えや行列計算のような明白なものがありますが、人々が取り組みたいと思うもっと興味深いものはありますか? たとえば、Java サイトで画像のぼやけを見つけたり、天気予報などを見つけたりしましたか?
問題を数日で解決できるように、ドメインが複雑すぎないのがよいでしょう。
どんな入力でも大歓迎です。アイデアや経験はありますか?
java - fork/join デッドロックが発生するのはなぜですか?
指定されたすべてのパスのサイズを計算する、次の抜粋されたコードを検討してください。
このコード スニペットがデッドロックになるのはなぜですか? システム コールと Java フレームワークの他の部分を除いて、スレッド間の相互作用はありません。システム コールが問題である場合、システム コールを削除せずにどのように修正できますか (システム コールは遅いため、並列化する必要があります)。