Java

Javaのマルチスレッド処理の最大スレッド数の制限方法とタスク終了検知方法

Javaを用いてスレッド数の大きいマシンで並列処理を行う際に,スレッド数を制限する方法を記載する. Javaでのマルチスレッド処理ではThreadPoolExecutorが便利. ExecutorServiceを使ってスレッドプールを作る以下のようなコードが良く利用される. Executo…

ArrayListを使った行列(配列の配列)の取扱い

Javaで行列計算を行なうとき,普段は固定長でのためdouble型としていたのですが, DBからのデータ取得時などに可変長としたいことがあり,ArrayListを使用しました. ArrayListと行列(double)データへの変換がわかりにくかったのでメモしておきます. ①Array…

Java Executor Frameworkでマルチスレッド

以前,Javaでマルチスレッドという記事を書きました. 当時はGUIとバックグラウンドを別スレッド処理するという目的だったので, Threadクラスで別処理の内容を1スレッドずつコツコツ書いていました. 今度は多数のスレッドを作成してマルチコアで並行して同…

java.nio.file.Filesを使ったフォルダコピー

これまでファイルコピーはjava.io.Fileを使っていたのですが, どうやらファイル操作のライブラリは新しくなっていたらしく,色々楽そうなので使ってみることにしました. ファイルコピーやフォルダの再帰探索は容易に行うメソッドが容易されているので, こ…

スキャン画像のモアレ除去のための、ぼかしとアンシャープマスク処理

CDのジャケット等の印刷物をスキャナでスキャンすると、 以下の画像の様にモアレが発生します。 (本画像はCQ出版「定本 トランジスタ回路の設計」表紙画像のスキャン画像の一部です。 ダウンロードして拡大するとモアレがよりよく見えます。) これは、印刷す…

Javaでマルチスレッド

JavaでGUIを触っていて、重めの処理をしたときにGUIが固まってしまい、 処理がおわるまで反応しなくなったことがありました。 これを避けるには、処理を別スレッドにすれば良いということで、 マルチスレッド化をしましたので、それについて少しメモしておき…

JavaでJPEGのEXIF情報を読み取り

JPEG写真のEXIF情報をまとめて持ってくるため、 Javaで取得をしてみました。 EXIF情報取得には、METADATA EXTRACTORという 便利なライブラリがあるのでこれを使わせてもらいます。 EXIF情報は、情報によって格納されているディレクトリが異なるらしいので、 …

BufferedImageが遅い

Javaでの画像ファイルの読み書きにBufferedImageというクラスを用いているのですが このクラスで画像のピクセルデータを読み出すのがとても遅いことに気づきました。 ちょっとピクセルごとに処理しようとすると、とてもじゃないけど待ってられないくらい遅く…

javaで、型の違う配列での四則演算がしたい

javaで、型の違う配列での四則演算をやりたくていろいろ調べたんですが、やっぱそのままじゃ無理そう。 なぜこんなことをやろうと思ったかといえば、 このブログの最初の記事でmatrixクラスとかを作っていたんですが、 int型のmatrixでも、double型のmatrix…

eclipseのエディタ設定

eclipseのエディタの設定を自分好みに少し設定変更したのでメモしておきます。 #eclipseのバージョンはKepler Service Release 2です。 変更点は ①行番号表示をさせる。 ②フォントを等幅フォントにする。 の2点です。 eclipseはデフォルトでconsolasというフ…

Javaで行列演算

せっかくなので今更ながらブログ作りました。 ぼちぼちなんか書いていきます。 とりあえず、先日作ったJava用の行列計算クラスでも置いておきます。 行列型のようなもので、内部に2次元配列と、入出力メソッド、 積和、転置、逆、行列式等、基本的な行列演算…