この文脈で「非同期」とはどういう意味ですか?

この文脈で「非同期」とはどういう意味ですか?

私は尋ねたどのくらい前でも、割り込みに対する「非同期」の意味は何でしたか?。これで同じ問題が発生しますが、シェルコマンドを実行してスレッドをキャンセルすることがあります。

Bashマニュアルから

コマンドが制御演算子によって終了すると、&シェルはコマンドを実行します。非同期的サブシェルから。

Abraham Silberschatzらの「運営体制の概念」から

キャンセルするスレッドは通常ターゲットスレッドと呼ばれます。ターゲットスレッドのキャンセルは、2つの状況で発生する可能性があります。

  1. 非同期取り除く1つのスレッドがターゲットスレッドをただちに終了します。

  2. キャンセルが延期されました。ターゲットスレッドは、定期的にシャットダウンする必要があるかどうかを確認し、秩序ある方法でセルフシャットダウンする機会を提供します。

上記の2つのケースでは、「非同期」が何を意味するのか疑問に思います。この2つのケースは同じ意味ですか?

Googleの定義が両方の場合に適用されますか? :

形容詞:非同期

  1. (2つ以上の事物または事件)存在しないか、または同時に発生します。

  2. コンピュータ、通信

    任意の形式のコンピュータ制御タイミングプロトコルに属するか、必要です。特定のタスク指示(信号)を受けてから始めてください。 以前の作業完了しました。

Googleのこの2つの定義は次のとおりです。

  • 「非同期」演算子の場合とは異なり&

  • スレッドの「非同期」キャンセルとは関係ありませんか?

2つ目の定義が上記のいずれの場合にも適用される場合、それぞれの場合の「特定のタスク」と「先行するタスク」は何ですか?

ありがとうございます。

ベストアンサー1

これらすべての場合、「非同期」は異なる意味を持ちます。

シェルの場合、&コマンドは非同期で実行されます。つまり、コマンドが開始されるとすぐに、シェルがコントロールを取り戻し、コマンドがバックグラウンドで実行されます。シェルは、次のコマンドがある場合はそれを処理し、存在しない場合はユーザーまたは親プロセスに制御を返します。

スレッドの場合、非同期キャンセルとは、キャンセルされたスレッドが即座に停止することを意味し、通常はスレッドの外部でのみ制御されるように、つまりキャンセルスレッドから。私はあなたが接した定義に精通していません。私は非同期キャンセルについて説明したいと思います。pthread_cancelPOSIX関数の定義つまりキャンセル関数は呼び出し元に即時制御を返し、キャンセルはターゲットスレッドで並列に発生するため、キャンセルは非同期です。

Google を使用して見つけた最初の定義では、非同期は通信の特性を表します。非同期通信は、当事者が同時に参加する必要がない場合に発生します。非同期通信の例は電子メールである。

Googleを使用して見つけた2番目の定義は、コールバックベースのプログラミングなどの非同期プログラミングを参照するようです。ジョブの順序をプログラムで定義し、ジョブをブロックするのではなく、イベントとイベントが発生したときに実行されるジョブの順序について説明します。あなたが引用した非同期定義は、他のタスクシーケンスが完了したときに実行される一連のタスクを参照するようです(参照:ListenableFuture説明実装)。ウェブサイトでいくつかの情報を検索し、一般的なプログラミングスタイルで処理するとします。同様のアプローチを使用してcurlウェブサイトのデータを取得し、完了するまで待ってから処理します。非同期スタイルでは、データとして実行するアクションを説明し、その説明を使用して検索を開始し、データが利用可能になると、他のアクションの実行中に処理が発生します。ここで、「特定のタスク」は実行する処理であり、「前のタスク」はデータ検索である。

おすすめ記事