タグ

2012年6月8日のブックマーク (18件)

  • JDIでスレッドダンプを取得する。 - うなの日記

    JDI(Java Debug Interface)でスレッドダンプをとります。 JDIは、その名の通り、仮想マシンのデバッガや類似システムに有用な情報を提供するJava API です。 リモートからのデバッグを標準でサポートしています。 JDK添付ですが、実装はtools.jar内にあります。利用するにはtools.jarをクラスパスに通す必要があります。(/lib以下にあります。) プログラム import java.io.IOException; import java.io.PrintStream; import java.util.Iterator; import java.util.List; import java.util.Map; import com.sun.jdi.Bootstrap; import com.sun.jdi.IncompatibleThreadState

    JDIでスレッドダンプを取得する。 - うなの日記
  • 翻訳家が教える3ヶ月で英文をスラスラ読める様になるための7の手順

    Tweet Pocket 当然ですが翻訳家は、英文や英語の記事をスラスラと読むことが出来ます。翻訳家でなくても、普段から英文を読み慣れている人は問題なく読むことが出来るでしょう。ここで1つの疑問が出てきます。 「スラスラと読める人の頭の中は、一体どうなっているの…?」 もちろん翻訳家も最初からスラスラ読めたわけではありません。翻訳家として専門のトレーニングを積んだり、あるいは英文を読む勉強を重ねて読むスキルを身に付けたのです。 それでは翻訳家が『英文を読むスキル』を得るための方法とは、どのようなものなのか?今回はその特別な方法をご紹介します!!この方法は上達の壁を感じることなく、比較的スムーズに『読むスキル』身につけることが出来るのです。そして3ヶ月程度で読む力に大きな上達を感じることができます!それでは、さっそく確認していきましょう。 1.リアルな英文を読む環境を整える最初にやるべき事は

    翻訳家が教える3ヶ月で英文をスラスラ読める様になるための7の手順
  • Apache Tilesを動かせるところまで設定する。 » 今週のキャリッジさん

  • 『tilesについて』

    Java Springの逆引きメモJavaのSpring frameworkのメモを書いていきます! 初心者の勉強ノートなので間違いがあるかもしれませんが、何かヒントになることがあれば幸いです。 '2012.03.23 追記 このブログで扱っているSpringMVCのバージョンは2.5で、情報が古くなっています。 現状、アノテーションを使用してかなり柔軟で使いやすくなっています。 この記事を削除することはしませんが、最新の情報を検索されることをお勧めします。 ⇒Spring MVC 3.xについて(日語の記事) ----------------------- SpringにもTilesがあるぞ! ということで、ちょっと調べたメモです。 【使用あたって】 まず、apacheのtilesのバージョンによっては使用できないということをお伝えせねばなりませぬ。。 tilesは、apacheのフレ

  • develop-memo.com

    This domain may be for sale!

  • Velocity-TECHSCORE-

    Velocityとは、Javaベースのテンプレートエンジンです。 そのVelocityについて解説していきます。 Velocity INDEX Velocityの概要 1.1. Velocityとは 1.2. Velocityのインストール 1.3. Velocityの簡単な例 VTL・リファレンス 2.1. コメント 2.2. 変数の出力 2.3. プロパティの表示 2.4. メソッドの実行結果の表示 VTL・#set,#ifなど 3.1. #set 3.2. #if #elseif #else VTL・#foreach 4.1. #foreach VTL・#parse,#includeなど 5.1. #parse #include 5.2. #stop 5.3. #macro Velocimacro 6.1. Velocimacroとは 6.2. Velocimacroの定義 6.3.

  • http://www.wdsdx.com/node/55

  • Java並行処理プログラミングまとめ - 第1部 基礎編 - Akinekoの日記

    というわけでいよいよ格的に並行処理プログラミングについてです。 と言っても基礎知識ではありますがwでも基礎知識は一番大事だと思うので甘く見ないで下さいね! 第2章 スレッドセーフ オブジェクトのステートに複数のスレッドからアクセスされる場合、それらのアクセスは必ず同期化されていないとダメ! スレッドセーフとは 複数のスレッドからどのようにアクセスされても正しく動作し、呼び出し側に同期化の為のコードなどが必要ないこと スレッドセーフなクラスの作成・修正方法 ステートへのアクセスを常に同期化する ステートに複数のスレッドからアクセスしない ステートを不可変にする ステートを持たない アトミック性 複数の間に割り込みの処理などがあってはいけない処理のまとまり。1つの処理として考えなければいけないもの。 リード・モディファイ・ライト ステートの値を読み込む→読み込んだ値を変更する→読み込み元のス

    Java並行処理プログラミングまとめ - 第1部 基礎編 - Akinekoの日記
  • 虎の穴 J2SE 5.0 入門 Concurrency Utilities No.1

    マルチスレッドのアプリケーションはいろいろ時をつけなくてはいけないことがあります。同期や同時アクセスやプライオリティ、デッドロックなどなど。 Java では安易にスレッドを作ることができるのでいつのまにかスレッドをたくさん使っていたなんてことも起こりがちですが、そのつけは大きいです。 そんなマルチスレッドのアプリケーションを作る際に福音書となっているのが Java スレッドプログラミング です。残念ながら今は品切れで入手が困難なので、もし屋に残ってたらすぐにでも購入したほうがいいです。 マルチスレッドと同様このも内容が難しくて、なかなか理解するのが大変なんですが、マスターできたら鬼に金棒状態です。そして、このの作者が Concurrency Utilities の原型を作った Doug Lea なのです。 Concurrency Utilities では次のような機能を提供しています

  • THI04-J. ブロックしているスレッドやタスクが確実に終了できるようにする

    ネットワークやファイルなどの入出力操作によって処理がブロックされるスレッドやタスクは、サービス運用妨害の脆弱性を防ぐために、明示的な終了の仕組みを呼出し元に提供する必要がある。 違反コード (ブロッキング I/O、volatile フラグ) 以下の違反コード例は、「THI05-J. スレッドの強制終了にThread.stop()メソッドを使用しない」に示しているように、volatile宣言したdoneフラグを使用してスレッドが終了可能であるかどうかを表している。しかし、readLine()メソッドを呼出すと、ネットワーク入出力処理が完了するまでスレッドは待機状態になり、新たに設定されたフラグの値に反応することができない。したがって、スレッドの終了は遅延させられるかもしれない。 // スレッドセーフなクラス public final class SocketReader implements

    THI04-J. ブロックしているスレッドやタスクが確実に終了できるようにする
  • Java の ExecutorService の使い方 - Java 入門

    Java の ExecutorService でスレッドプールを利用できる ここで説明するのは、おそらくもっとも安全にマルチスレッドプログラムを書く方法です。 さらに同様の方法で簡単に拡張することで、複数のスレッドを効率よく使うスレッドプール (Thread Pool) を利用できますので、 ぜひ覚えておきたい方法です。 その方法とは、 ExecutorService を利用することです。 ExecutorService では、 「Java のマルチスレッド・プログラミングの基」 でみたように Thread オブジェクトをそのまま生では使いません。 ExecutorService ではスレッドプールが用意されるので、そこにタスクがディスパッチされることで処理が行われます。 Java のタスクの状態 Executor によって処理されるタスクの状態は次の四つです。 created (作成さ

    Java の ExecutorService の使い方 - Java 入門
  • 「eclipseデバッグ中に任意の例外を発生させるには」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • 日記(仮) >> Javaプログラム終了時に確実に終了処理をする

    Ctrl+Cで落とした時に「後始末」な処理(ファイルを閉じるとか,DBにロールバックをかけるとか)をしてから終了させたいとか思ったときの話. 方法は2通りで,ひとつはVMのシャットダウンにフックをかける方法,もうひとつはSIGINTを捕まえるという方法. ちなみに推奨されるのは前者(というか後者が推奨されない.理由は後述). まずは一つ目から.以下の様にして,シャットダウン時に走るスレッドを用意してRuntimeに渡す. public class ShutdownHookTest { public static void main(String[] args) { ShutdownHookTest main = new ShutdownHookTest(); main.exec(); } void exec() { Runtime.getRuntime().addShutdownHook(

  • Thread.sleepのチェック例外InterruptedExceptionの扱い - torutkのブログ

    Java読書会の前回の課題図書「Java並列処理プログラミング」において、ブロッキング・メソッド(Threadクラスのsleepも含む)を呼び出すときに要求されるチェック例外InterruptedExceptionの取り扱いについて述べられていた。 同書籍の著者によるIBM developerWorksの記事Javaの理論と実践: 割り込み例外の処理の方が少し詳しく書かれている。 対処方法 簡単に箇条書きにまとめると、 メソッドのthrows節にInterruptedExceptionを記述し上位へ伝播させる 1.が難しいとき(例:Runnableを実装したクラスのrunメソッドの中)、InterrptedExceptionをキャッチしてインタラプテッド・ステータスを復元する Threadを継承しているrunメソッドの中などスレッドの最上位をコントロールしている場合で、Interrupte

    Thread.sleepのチェック例外InterruptedExceptionの扱い - torutkのブログ
  • 「Java SE 6完全攻略」第10回 オンデマンドアタッチを実現するAttach API

    Java SE 6完全攻略」の第2回でオンデマンドアタッチを紹介しました。起動時に何も指定しなくても,必要なときにjconsoleでJava VMにアタッチできるという機能です。 それにしても,オンデマンドアタッチって,どうやって実現させているか不思議ではないですか? 筆者は夜も眠れぬぐらい不思議に思っていたのです。そんなある日,あらためてJava SE 6のドキュメントをつらつら眺めていると,Attach APIという聞き慣れないAPIを見つけたのです。 そう,このAttach APIがオンデマンドアタッチを実現するためのAPIだったのです。 Attach APIの正体 Attach APIはcom.sun.tools.attachパッケージとcom.sun.tools.attach.spiパッケージで定義されている四つのクラスから構成されています。しかし,主に使うのはcomsun.t

    「Java SE 6完全攻略」第10回 オンデマンドアタッチを実現するAttach API
  • [Think IT] 第1回:プロファイラとは (3/3)

    次に、プロファイル対象となるサンプルアプリケーションをインストールしましょう。ここでは、オープンソースのDIコンテナである、SpringFrameworkを利用したアプリケーションを使うこととします。 SpringFrameworkのダウンロードサイトにアクセスし、最新安定バージョンである2.0.6の「Download」リンクをクリックします。 WebサイトではSpring単体と、依存関係にあるライブラリをまとめたものの2つの形式が提供されています。今回は後者のライブラリをまとめた「spring-framework-2.0.6-with-dependencies.zip」を選択し、ダウンロードを行います。 ダウンロードが完了したら「spring-framework-2.0.6-with-dependencies.zip」を、作業ディレクトリで展開します。

  • 「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat

    アプリケーションのパフォーマンス・チューニングなどで使用するツールといえば,まず第一にあげられるのがプロファイラです。最近は,EclipseのTPTPや,NetBeans Profilerなどフリーで使えるプロファイラが増えてきたので,使ってみたことがある方も増えてきていると思います。 意外に知られていないのですが,Java SEにも標準でプロファイラが付属しています。それがhprofです。 Java 2 SE 5.0からは「-agentlib:hprof」という起動オプションでhprofを起動できます(J2SE 1.4.までは「-Xrunhprof」)。使い方はヘルプ・オプションで表示できます。 C:\temp>java -agentlib:hprof=help HPROF: Heap and CPU Profiling Agent (JVMTI Demonstration Code)

    「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat
  • Javassistメモ(Hishidama's Javassist Memo)

    上で作ったconvert()には、クラス名を文字列で指定する必要がある。 しかしこれだと、複数のクラスを変更したい時はいちいち指定してやらないといけないので大変だし、間違った名前にしていても実行するまで分からないし、Eclipseの(クラス名変更の)リファクタリング機能の対象にもなってくれない。 (名前に関して)だからと言ってこういう工夫をすると… convert(Sample1.class.getName()); 実行時例外が発生する。 Exception in thread "main" javassist.CannotCompileException: by java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definitio