Talked at AWS Dev Day Japan 2022. - 解説動画 : https://www.youtube.com/watch?v=hT7Se0oFEkU - イベントページ: https://aws.amazon.com/jp/events/devday/japan/ - Pr…
こんにちはhelloです。ISUCONで課題に上がっていたRubyでの非同期処理についてまとめてみたいと思います。 まず記事に関連しそうなワードについて整理したいと思います。 非同期処理について 非同期処理とは、あるタスクが実行している際に他のタスクを実行できる方式です。 http://ossforum.jp/node/753 平行処理について ある時点で一つの仕事しかしないが複数の仕事を切り替えて行う事。 並列処理について ある時点で複数の仕事をしていること。 GIL(グローバルインタプリンタロック) インタプリンタのスレッドによって保持されるスレッドセーフ出ないコードを他のスレッドと共有してしまうことを防ぐための排他ロック。 IO DiskIO NetworkIO 同期ブロッキング プロセスがカーネルにシステムコールを行い、レスポンスを待つ 同期ノンブロッキング プロセスがカーネルにシ
JavaScriptはシングルスレッドであることが知られています。そして、Promiseを用いた非同期処理ができることは周知の事実です。では、なぜシングルスレッドで非同期処理ができるのでしょうか? その点について、非同期処理のための2種類のQueuesについて触れつつ、コードベースでの説明も行います。
本投稿のサンプルコードを GitHub に用意しました。 im36-123/multiple_await | GitHub 概要 async/await を使うとで非同期処理を同期処理のように記述できますが、複数の非同期処理を待つときに気をつけたいことを紹介します。 複数のリクエスト送信して、それらのレスポンスからページを構成するときなどに役立つかもしれません。 今回は Fetch API を使って複数のリクエストを送信する場合を考えてみます。 普通に async/await を使う まずは、ひとつだけリクエストを送信する場合を考えてみます。 function get(url) { return fetch(url); } async function fn() { const res = await get(`https://hoge/api`); console.log(res); }
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く