この記事はJava Advent Calendar 2016の12日目です。 前日は、leak4mk0さんのデータベースを簡単にーJavaSEでもオブジェクト指向データベース(JPA) でした。 次は、tkxlabさんのJavaSEでもオブジェクト指向データベース(JPA)をとなります。 はじめに 「フリーランチの終焉」と言われマルチコアの時代に突入してはや数年。 Webアプリを作る事が多かったのも理由ですが、ほとんどシングルスレッド(サーブレッドとかでマルチスレッドを意識するケースはあるけど)で開発してた私にも、今年は並列プログラミングの波が押し寄せてきました。 そんなわけで今年のアドベントカレンダーは並列プログラミング入門に関してまとめてみます。 Java 8標準の並列API Javaは当初よりマルチスレッドプログラミングを喧伝してただけあって、それなりに並列プログラミングがやりやすい
概要 Javaでスレッドを扱うと言えばJDK1.4まではThreadクラス・Runnableインターフェースだったが、 JDK1.5でExecutorService・Callableインターフェース・Futureが導入された。 ExecutorServiceでは、同時に実行するスレッド数を指定することが出来る。 処理を登録(submit)しても、指定したスレッド数までしか同時に実行されない。 (実行可能なスレッド数に足りない場合、登録したスレッドは実行待ちになる。実行中のスレッドの処理が終わると、待機していたスレッドが実行される) Callableインターフェースは、ExecutorServiceで実行する処理を定義する為のインターフェース。 Runnableインターフェースは戻り値を指定することが出来ないし例外もRuntimeExceptionしかスローできないが、 Callableイン
Android で非同期処理っていうと、真っ先に AsyncTask が出てくるんですが、なるべくなら Java 標準のマルチスレッドAPI である ExecutorService を使った方が良いと思ってます。 (2007年の記事だけど) Java技術最前線 - 「Java SE 6完全攻略」第49回 Concurrency Utilitiesの変更点 その1:ITpro Android で初めて Java を書いたので細かい仕様がよく分からず、勉強がてら動きを確認してみました。 1. 1つのワーカスレッドに実行させる newSingleThreadExecutor でワーカスレッドを一つ持つ Executor を生成して、2つのタスク(=非同期で実行させる処理)を順に実行。 public void singleThreadExecutorBasicTest() throws Excep
仕事でマルチスレッドを扱うようになったので備忘録として Executors 関連のメモを残しておく。 あるタスクを別スレッドで実行したい時、Executors クラスを使えば自前でスレッドの管理をすること無く簡単に並列処理を行えるようになる。 もちろん完全に簡単になったわけではなく、マルチスレッドプログラミングの困難さは健在だが、自前でスレッドの管理をしない分バグを仕込む可能性も減るだろう。 はじめに Executors はタスクと呼ばれる処理の最小単位を別スレッドで実行する仕組みである。マルチスレッドなのでシングルスレッドに比べると複雑性は若干上がるものの、通常のマルチスレッドプログラミングに比べれば少ない複雑性、高い安全性を備える。そして何より、パフォーマンスの向上が期待できる。 この仕組みはジョブキューモデルそのものである。ジョブはタスク、キューは後述する Executor に相当す
Java 1.5以降では Executorsフレームワーク 利用を優先検討のこと。 遅延実行(タイマー) クラス / メソッド 概要 Since
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く