タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

マルチスレッドとJavaに関するteracy_junkのブックマーク (2)

  • Javaマルチスレッディングその1(Executorとタスクキュー) - らこらこブログ

    Androidアプリ開発を想定した上で一般に使えるJavaのマルチスレッディングについてのメモ書きです。 全部を解説するにはページが足りないので、タスクキューの実装を例に触れていきます。 (Java SE 6以上) Executor まずはExecutorについての説明を。Java SE 6でスレッドを生成する方法は ・new Thread … Threadインスタンスの直接的な生成 ・Executorインタフェースを実装したクラスのインスタンスを生成し、別スレッドでの処理を依頼する(executeメソッド等) ・SwingWorkerを用いる Swingに関しては今回はAndroid環境を想定しているので除外します。 Threadインスタンスを直接生成するのは古くから用いられてきた方法ですが、単純故に自由度が大きい反面周期実行や遅延実行、スレッドプールなどの実装を全て自分で行わないといけ

    Javaマルチスレッディングその1(Executorとタスクキュー) - らこらこブログ
  • Collections#shuffleさんのスレッドセーフじゃないぜ俺は! - じみこつブログ

    java.util.Collections#shuffle(List) がスレッドセーフじゃなくてハマった話をご紹介します。 ランダムで3つのキーワードを表示させるために 初期値であるキーワードのリスト(事, 睡眠, 仕事, 勉強, 娯楽, …)を アクセスのたびにランダムに並び替えて そのリストを先頭から3つ取り出して表示する といった処理を行っていました。 しかーしアクセスの多い番環境では 何故かそのキーワードリストが ランダムに表示されず(「仕事|仕事|仕事」 ww) そもそもそのバグに気づいたのも結構経ってからだったので なかなか原因がつかめませんでした。 結局原因はCollectionsのshuffleメソッドが スレッドセーフではないということでした。。。 とりあえず以下のテストコードを見てください。 マルチスレッドで動かすためのメインクラス import java.uti

  • 1