銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

マルチスレッド・非同期処理

WebWorkerを手軽に扱うTransWorker v1.1でSharedWorkerが利用可能になりました!

この度、JavaScriptでWebWorkerを手軽に扱う [npmモジュール TransWorker](https://www.npmjs.com/package/transworker) を v1.1.0 に更新しました。 従来は DedicatedWorker にしか対応していなかったため、ワーカースレッドを生成したメインスレッドからし…

非同期処理の直列化:今やArray.reduceを使わなくてもできますよね

photo credit: hans-johnson 700-7000 Series_1 via photopin (license) 非同期処理の直列化とは「複数の非同期処理を、順番に実行する処理」のことです。非同期処理の順次実行や逐次実行とも呼ばれます。 処理速度は、並列処理よりも遅いのですが、処理順が…

「プロミス地獄」に落ちないための基本事項

「コールバック地獄」からボクらを救ってくれた「Promise」ですが、ふと気が付けば、ちょっと種類の違う別の地獄に落ちてる場合がありますよと。 「なんだPromiseお前もかっ!」的な(笑) 「コールバック地獄」は見た目にネストが深くて「ダメだコリャ感」…

JavaScriptのWebWorkerでスレッド間のリモートプロシジャコール(RPC)を実装する

ブラウザのJavaScriptでWebアプリをマルチスレッド化できる Web Workers API の基本と、Worker側を使ってスレッド間でのリモートプロシジャコールを実装して、ワーカースレッドのメソッドを呼び出して戻り値をコールバック関数で受け取れるようにする方法を…

なるべく一定周期で実行するスレッドクラス

Windowsで、なるべく正確に一定周期で処理を実行するタイマーの基本クラスです。 派生クラスで run() メソッドを実装し、start()メソッドを呼べば、setInterval()で指定した周期で、処理が呼び出されます。(⇒TimerThreadSample.cpp) リアルタイムOSではな…