問題タブ [serial-processing]

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

javascript - コールバックのない同期関数

私がこれらの2つの機能を持っていると仮定します:

私がそれらを書いていなかったと仮定します-それらはサードパーティです。今、私はそれらを同期的に呼び出して取得したいと思います:

問題は、コールバック(サードパーティの関数)を使用できないことです。また、約束やイベントを使用することはできません(同じ理由)。async関数のアリティのため、stepモジュールは使用できません。後で(およびネストされたすべてのサブ関数を)同期的に呼び出すsimple()にはどうすればよいですか?complex()そしてJavaScriptはsuxですか?:)

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

ios - GCD シリアル キューがシリアルに実行されていないようです

コード全体で呼び出すことができるメソッドがあります。以下は非常に基本的な例です。コードは iPhone フォト ギャラリーから画像とファイルを処理し、メソッドの実行が完了すると処理済みとしてマークします。

このメソッドが呼び出されるたびに、以下の出力が得られると思います...「In processImages」「Done with processImages」「In processImages」「Done with processImages」など...

しかし、私はいつも得ます

「In processImages」「In processImages」「Done with processImages」「Done with processImages」など...

シリアル キューは、最初のブロックが完了するまで待ってから開始すると考えていました。私には、メソッドを開始しているように見えますが、最初の呼び出しが終了する前に再度呼び出されて起動し、実際に連続して実行された場合、メソッドはそれらを知っているという事実のために通常は処理されない画像の複製を作成しますすでに処理されていました。たぶん、シリアル キューに関する私の理解は具体的ではありません。入力はありますか?ありがとうございました。

編集:以下のコンテキスト、これはブロックで起こっていることです...これが問題を引き起こす可能性がありますか???

このオブジェクトは一度だけ作成され、コードに基づいて二度と作成できないと私が知る限り...テストを実行して確認します。

更新 2: 何が起こっていると思いますか。同意/同意しない場合は、これについてコメントしてください....

明らかに私の主な問題は、このコードブロックが同時に実行されているように見え、シリアルで実行された場合に通常はこれを行わないときに、重複したエントリ (同じ写真を 2 回インポートする) を作成することです。写真が処理されると、「ダーティ」ビットが適用され、次にメソッドが呼び出されたときにこの画像がスキップされるようになりますが、これは行われず、一部の画像は 2 回処理されます。これは、その serialQueue 内で enumerategroupswithtypes: を使用して 2 番目のキューでオブジェクトを列挙していることが原因でしょうか?

  1. processImages を呼び出す
  2. enumerateObjects
  3. それ自体が非同期であるため、 enumerateObjects からすぐに戻ります
  4. processImages の呼び出しを終了する

enumerategroups はおそらくまだ実行されているため、processImages は実際には完了していませんが、enumerategroups が動作を完了する前にブロックの最後に到達するため、キューが完了したと見なされる可能性があります。これは私には可能性のように思えますか?

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

parallel-processing - openMPI を使用したシリアル Fortran コード

私は並列コンピューティングの初心者です。

従来の流体力学 Fortran 77 コードを実行する必要があります。このプログラムはシリアルで実行速度が遅いので、コードを深く掘り下げずに (例えばオープン MPI を使用して) 並列実行できる可能性について疑問に思っていました。出来ますか?

0 投票する
0 に答える
287 参照

iphone - シリアル NS 操作

セルのコレクションを持つテーブル ビュー コントローラーがあり、各セルには 2 つの値が表示されます。

–––––––––––––––––––––––<br> | セル1 | val1 | val2 |
–––––––––––––––––––––––<br> | セル2 | val1 | val2 |
–––––––––––––––––––––––<br> …</p>

次のようなアルゴリズムを使用して、これらのセルでシリアル同期操作を実行する必要があります。

  1. コア データのセットアップと tableView UI の更新
  2. セルを反復する
    2.1 tableViewCell UI を更新する
    2.2 値を反復する
        2.2.1 値 UI を更新する
        2.2.2 新しい値をダウンロードする
            2.2.2.1 失敗した場合 反復を繰り返す
        2.2.3 値を保存して UI を
    更新する 2.3 tableViewCell UI を更新する
  3. tableView UI の保存と更新

私はNSBlockOperationsでNSOperationQueueを使用しています:

このコードでは、すべての反復が完了する前に最後の操作 (#3) が実行されます。

シリアルオーダーを維持するために操作とキューを適切にネストする方法についての提案を探しています。

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

ios - Parse を使用すると、GCD シリアル キューがシリアルに実行されないようです

助けてくれてありがとう。ユーザーが質問に答えて、ユーザーのグループに独自の質問を追加できるアプリを作成しようとしています。パースから株式の質問をダウンロードしていますが、さまざまな理由から、これらの質問を特定の順序でメイン配列にロードする必要があります。シリアル GCD キューでこれを達成しようとしていますが、これは一貫して期待される結果と反対の結果を切り替えています。私には意味がありませんが、解析クエリで使用される非同期ダウンロード要求と関係がある可能性があるという感覚を揺るがすことはできず、ここでの他の回答はどれも対処していません。

これが私のコードです:

これは私が書いたヘルパーメソッドです:

繰り返しますが、どんな助けも大歓迎です!