view paper/conclusion.tex @ 15:930eae4e8aeb

modify introduction
author sugi
date Fri, 16 Jan 2015 14:44:05 +0900
parents 295b393a7134
children 8e0b26d962cc
line wrap: on
line source

\chapter{結論} \label{chapter:conclusion}

\section{まとめ}

\section{今後の課題}

\subsection{データの永続性の確保}

\subsection{DataSegmentKeyの領域分け}

\subsection{記述に関する注意点}
\subsubsection{setKey のシンタックス問題}
setKeyメソッドをコンストラクタ等で呼ぶ際、setKeyメソッドを必ず最後に呼ばなければならない。

Code Segmentは内部で実行に必要なData Segmentを数えている。Data Segmentの取得に成功するとこの値が、デクリメントされ、0になると必要なData Segmentが全て揃ったことと判断される。全て揃った際にはThread poolへ送られる。

setKey移行に処理を記述した場合、その処理が行われない可能性がありThread poolへと送られNullPointerExceptionを引き起こす。

\begin{table}[html]
\lstinputlisting[label=src:NullPointerException,caption=NullPointerExceptionになる可能性がある]{source/ShowDataFailed.java}
\end{table}

ソースコード\ref{src:NullPointerException}は、for文でsetKeyとids.createをcntの回数呼び、動的にData Segmentの取得数を決めようとしている。しかし、setKeyが最初に呼ばれた際に、Data Segmentの取得に成功すると実行可能と判断されてしまう。runの中でinfoの配列の要素だけ中身を表示させようとしてるが、2回目のasClassでNullPointExceptionを引き起こす。今回の場合、コンストラクタ内をソースコード\ref{src:success}のように記述する必要がある。

\begin{table}[html]
\lstinputlisting[label=src:success,caption=NullPointerExceptionにならない記述]{source/ShowData.java}
\end{table}
\subsubsection{singleton Code Segment}