Skip to Content
Javaパフォーマンス
book

Javaパフォーマンス

by Scott Oaks, Acroquest Technology株式会社, 寺田 佳央, 牧野 聡
April 2015
Intermediate to advanced
448 pages
6h 47m
Japanese
O'Reilly Japan, Inc.
Content preview from Javaパフォーマンス

9章スレッドと同期のパフォーマンス

当初から、Javaでは複数のスレッドに対応しているというのがアピールポイントの1つでした。マルチコアあるいはマルチCPUのシステムが一般的になるよりも前の時代から、スレッドを使ったプログラムを簡単に作成できたというのは画期的なことでした。

パフォーマンスの観点からも、このメリットは明らかです。例えばCPUが2つあるなら、アプリケーションは従来の2倍の処理を行えるか、同じ処理を従来の2倍の速さで実行できるようになると考えられます。しかしこのためには、分割可能な形でプログラムを作成しなければなりません。プログラムのアルゴリズムを解析して自動的に並列化するような機能は、Javaには用意されていません。ただ、今日のコンピューター上での処理は明確に分割されていることがよくあります。例えばサーバーは個別のクライアントからリクエストを受け取って処理を行い、バッチ処理では一連のデータに対して同じ処理が行われ、数学的アルゴリズムでは処理が複数の構成要素へと分解されています。

この章では、Javaのスレッドや同期の性能を最大限に発揮させるための方法を紹介します。

9.1 スレッドプールとThreadPoolExecutor

スレッドを管理するためのコードは自分で作成することもでき、既存のスレッドプールを利用することもできます。Java EEのアプリケーションサーバーは、1つまたは複数のスレッドプールをベースとして作成されています。サーブレットの呼び出しが要求されると、その都度スレッド(同じかもしれず、別々かもしれません)が実行されて処理を行います。同様に、JavaのThreadPoolExecutorを利用して作業を並列に行うということも可能です。

Java EEのアプリケーションサーバーの中にも、 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

パフォーマンス向上のためのデザイン設計

パフォーマンス向上のためのデザイン設計

Lara Callender Hogan, 西脇 靖紘, 星野 靖子
初めてのSQL 第3版

初めてのSQL 第3版

Alan Beaulieu, 株式会社クイープ
プログラミングC# 第8版

プログラミングC# 第8版

Ian Griffiths, 木下 哲也, 鈴木 幸敏
Python機械学習クックブック

Python機械学習クックブック

Chris Albon, 中田 秀基

Publisher Resources

ISBN: 9784873117188Other