>>232
無駄待ちしない非同期プログラミングは特定の言語に依存しない一般的なプログラミング手法。
どの言語でもそれが直接見えるか否かに関わらず一番下では当然コールバックになっている。
例えばそれを遅延してコールバック指定できるタイプのfutureやpromiseを返り値としてもらうのはデザインパターンの問題。
こうすることでターゲットのオブジェクトに直接コールバックを渡すのではなくfutureやpromiseを介することで自分側で制御できる。
更にそれを表記上はコールバックをしているように見せないためにco-routineやgeneratorを使って見た目だけ同期っぽく書くことも可能。
つまり表記上は無駄待ちでブロックされる同期呼び出しとほぼ同じ形でコーディングが出来る。
そしてそれら上記を全て意識せずに簡潔に書けるようにしたものがいわゆるasync/awaitとなる。
この正しいawaitを用いれば見た目は同期呼び出しなコードなのに実態は非同期呼び出しかつ無駄待ちせずそのスレッド自体がその間も他のコードを実行可能となる。
これにより例えばシングルスレッドのみ使用であっても多数の通信やファイルアクセスなどを一切無駄待ちせずに非同期に並行して効率よく処理することが可能となる。
具体的に複数の最終的にコールバックされるペンディング状態を管理するのは多くの場合にメインのイベントループオブジェクトである。
これは言語によっては言語に内在するケースもあれば標準モジュール/ライブラリとして提供される場合もあれば自作する場合もある。
抽象化された上位のものを用いていてもその内部では結局select()やpoll()などのシステムコールが中核に位置することになる。
このオブジェクトで多数のファイルディスクリプタ(通信も結局ソケットなのでこれになる)管理とタイマー管理などを集中管理する。
全てのコールバックはここから直接もしくはfutureやpromiseなどを介して行われることになる。
これらの機構が直接見えるかどうかは各言語およびどこまで抽象化されたライブラリを用いるのかに依存する。
例えば貴方が言及しているJavaScriptではブラウザとNode.jsどちらも実行環境に内在されているため利用者は自分で準備や構築をする必要はない。
探検
オブジェクト指向を教えてくれ!
■ このスレッドは過去ログ倉庫に格納されています
281デフォルトの名無しさん
2021/03/22(月) 06:26:21.92ID:x5QOR3yt■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★3 [蚤の市★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 [煮卵★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【結婚の壁】結婚どころか今まで恋愛経験は一切ない人も…「年収500万の壁」を突破できない中間層の苦しい現実 [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【悲報】トランプ「(今中国と事を荒立てたくないんだよ…空気読めよ…)」高市「なんで欧米は味方してくれないの!?」 [158478931]
- ゆめちゃん🤥🤝ともちゃん🤥💕🏡
- 【高市悲報】維新奥下「企業から陳情のためにキャバクラに呼ばれたんや😤いい迷惑やったが断り辛かった」 [359965264]
- 【高市悲報】レーダー照射で日本が喧嘩売ってる中、アメリカ軍「我々はパールハーバーを忘れない」と日本に向けてポストへ [709039863]
- 高市首相「自らの命は自らが守るという原則で、行動とっていただきたい」 [256556981]
- 本当の問題は高市がバカなことじゃなくて高市みたいなバカを支持するバカが大量にいることだよな [314039747]
