JavaScriptはシングルスレッドであることが知られています。そして、Promiseを用いた非同期処理ができることは周知の事実です。では、なぜシングルスレッドで非同期処理ができるのでしょうか? その点について、非同期処理のための2種類のQueuesについて触れつつ、コードベースでの説明も行います。
![JavaScriptはなぜシングルスレッドでも非同期処理ができるのか/Why Can JavaSctipt Invoke Asynchronous in Single Thread?](https://cdn-ak-scissors.b.st-hatena.com/image/square/1cb5dfbb64f8c1119019eb8a336cd8d7dcc53bf2/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F380e45bc0a4b4dc28f8a35b68c323a97%2Fslide_0.jpg%3F18968032)
JavaScriptはシングルスレッドであることが知られています。そして、Promiseを用いた非同期処理ができることは周知の事実です。では、なぜシングルスレッドで非同期処理ができるのでしょうか? その点について、非同期処理のための2種類のQueuesについて触れつつ、コードベースでの説明も行います。
「重たい処理を非同期で実行して、結果をメインスレッドで画面に表示」を、 Android-Java iOS-Swift Xamarin(Android も iOS も同じ) で比較。 Android @Override public void onClick(View view) { new AsyncTask<Void, Void, Long>() { @Override protected Long doInBackground(Void[] p) { // ワーカースレッド long ret = 0; for (long i = 0; i < 1000000000; i++) ret += i; return ret; } @Override protected void onPostExecute(Long result) { // UIスレッド text1.setText(Stri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く