スポンサーリンク

マルチスレッド

HTML5の「Web Workers API」を,別ファイルを使わずページ単体で利用するサンプル (createObjectURLがあれば,1ファイルでマルチスレッドのJSコーディングが可能)

JavaScriptプログラミングのTOPへ HTML5の「Web Workers API」(非同期処理の仕組み)を,外部スクリプトを使わずに,1ファイルだけで実行するサンプルコード。 ワンライナーで(たった1行で)Workerスレッドを起動できる。簡単に書くとこんな感じ。 // ス…

Javaのマルチスレッド・プログラミングのリンク集 (デザインパターンの解説集つき)

Javaでマルチスレッド処理をコーディングするための設計・実装スキルを,入門者が独学で学習するためのリンク集。非同期処理・並列プログラミングともいう。 「Javaでマルチスレッド」を題材にした書籍は,じつは相当少ない。スレッドを学ぶJava初心者には,…

Android SDK の動かないコード(中級編) invalidate しても再描画されないエラー

AndroidプログラミングのTOPへ 以下のAndroidアプリのコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ボタン押下時に,ImageView上に画像を2枚連続で表示する。表示のタイミングをずらす事により,疑似的にスライドのように…

Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする)

重要なお知らせ:この記事で公開した情報は,AndroidのMVCフレームワーク「Android-MVC」の機能の一部として取り込まれました。より正確な設計情報や,動作可能な全ソースコードを閲覧したい場合,「Android-MVC」の公式ページより技術情報を参照してくださ…

DBの「トランザクション分離レベル」が必要な理由  (PostgreSQLで,ファントム・リードを防止すべきサンプル事例)

データベースには,「トランザクション分離レベル」というものがある。 以下では,それが なぜ必要なのか? デフォルトのレベルでは,どうして駄目なのか? PostgreSQLでは,どうやってレベルを変更・確認するのか? などを取り上げる。 トランザクション分…

Rubyの動かないコード (中級編) Ruby on Railsで,スレッドごとにトランザクションを分離したい

以下のRuby on Railsのコードが,意図した動作をしないのはなぜですか。(制限時間1分) やりたい事 2つのスレッドを同時に動かす。 スレッド1では,レコードを登録後,ロールバックする。 スレッド2では,レコードを登録後,コミットする。 タイミング…

JavaScriptの動かないコード (中級編) setTimeoutのタイマーが指定時刻に動かないエラー (JavaScriptがマルチスレッドだという誤解)

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 0から20000までループする。 そのループの途中にタイマーを設定して,ループの進捗を表示する。 <input type="button" value="ループを開始する" onClick="f()"> <div id="div_counter"></div> <div id="div_comment"></div>

Javaで,各スレッドの状態を可視化するツール (マルチスレッドアプリでデッドロックを検出する)

マルチスレッドなアプリケーションで,各スレッドの状態は (1)普通に動作中:緑 (2)ロックを保持しながら動作中:オレンジ (3)ロック待ちのウェイト状態:赤 などの状態を遷移する。もし(3)が長く続いたら,デッドロックが発生しているとわかる。…