[過去ログ]
Go language part 5 (1002レス)
Go language part 5 http://mevius.5ch.net/test/read.cgi/tech/1645915400/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
912: デフォルトの名無しさん [sage] 2025/05/18(日) 16:54:47.55 ID:eaOArS/2 >>911 何度も説明しているのに理解できないのは呆れる async/awaitなんか導入する前からJavaScriptはPromiseで非同期に動いている シンタックスシュガーにすぎないasync/await記法の導入によってステートマシンの導入なんか必要ない http://mevius.5ch.net/test/read.cgi/tech/1645915400/912
913: デフォルトの名無しさん [] 2025/05/18(日) 17:36:48.91 ID:/UZONODy >>912 C# は Taskベースのスレッドプール実装が先にあり、その後async/awaitが導入され、コンパイラがTaskベースのステートマシンに変換する JS は callback, Promiseベースのイベントループ実装が先にあり、その後async/awaitが導入され、(JIT)コンパイラがPromiseベースのステートマシンに変換する この2つの一体何が違うのか説明しろ ChatGPTの回答 質問: JavaScript の async/await は内部でPromiseを使ったステートマシンに変換されますか? 回答 ``` はい。JavaScript の async/await は構文糖衣であり、内部的には Promise を使ったステートマシンに変換されます。 AsyncFunction は常に Promise を返す ECMAScript2017 の仕様では、async function を呼び出すと新しい Promise が即座に返されます。本体は zero 個以上の await 式で分割され、各 await ごとに実行を一時停止・再開する必要があるため、概念的にはステートマシンとして動作します モダン JavaScript エンジンでの最適化 V8(Chrome)、SpiderMonkey(Firefox)、JavaScriptCore(Safari)などのエンジンでも同様のステートマシン原理を内部に持ちつつ、ネイティブの AsyncFunction オブジェクトとして最適化して実装しています en.wikipedia.org ``` そしてお前は最初の話題であった標準ライブラリでasync/awaitがそのまま使えない問題について何も反論できてない 以下の3つについて反論しろ - なぜ promiseラップのsleep関数を実装するユーザが多いのか - なぜ標準ライブラリのhttpクライアントではなく axios等を使うのか - なぜ fs/promises は導入されたのか http://mevius.5ch.net/test/read.cgi/tech/1645915400/913
920: デフォルトの名無しさん [] 2025/05/19(月) 00:01:41.90 ID:M5liwQEO Goの話しろよ… 横から少し突っ込むと、 >>915 が言ってるのは>>912にある「シンタックスシュガー」について、その糖衣構文が実際には何を行っているのかが分かっているか?ということ C#でもRustでも、ユーザー側のコードにはステートマシンは出てこないけど、async関数はステートマシンに変換されてる (だから await の前にある変数をそのまま参照できる) これはJSでも同じ >>918 についていえば言語の仕様の違いなので仕方ない JSではsleepみたいにブロックする関数 (CPUを使うような仕事ではないのに待たされる関数) はどうしようも無い C#だとそれを逃がす方法 (Task.Run) もあるけど、これはスレッドプールと関係するから、シングルスレッドのJSだと使えない いずれにせよGoと関係なさすぎ http://mevius.5ch.net/test/read.cgi/tech/1645915400/920
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s