comparison paper/conclusion.tex @ 15:930eae4e8aeb

modify introduction
author sugi
date Fri, 16 Jan 2015 14:44:05 +0900
parents 295b393a7134
children 8e0b26d962cc
comparison
equal deleted inserted replaced
14:b9b3f2241ab4 15:930eae4e8aeb
5 \section{今後の課題} 5 \section{今後の課題}
6 6
7 \subsection{データの永続性の確保} 7 \subsection{データの永続性の確保}
8 8
9 \subsection{DataSegmentKeyの領域分け} 9 \subsection{DataSegmentKeyの領域分け}
10
11 \subsection{記述に関する注意点}
12 \subsubsection{setKey のシンタックス問題}
13 setKeyメソッドをコンストラクタ等で呼ぶ際、setKeyメソッドを必ず最後に呼ばなければならない。
14
15 Code Segmentは内部で実行に必要なData Segmentを数えている。Data Segmentの取得に成功するとこの値が、デクリメントされ、0になると必要なData Segmentが全て揃ったことと判断される。全て揃った際にはThread poolへ送られる。
16
17 setKey移行に処理を記述した場合、その処理が行われない可能性がありThread poolへと送られNullPointerExceptionを引き起こす。
18
19 \begin{table}[html]
20 \lstinputlisting[label=src:NullPointerException,caption=NullPointerExceptionになる可能性がある]{source/ShowDataFailed.java}
21 \end{table}
22
23 ソースコード\ref{src:NullPointerException}は、for文でsetKeyとids.createをcntの回数呼び、動的にData Segmentの取得数を決めようとしている。しかし、setKeyが最初に呼ばれた際に、Data Segmentの取得に成功すると実行可能と判断されてしまう。runの中でinfoの配列の要素だけ中身を表示させようとしてるが、2回目のasClassでNullPointExceptionを引き起こす。今回の場合、コンストラクタ内をソースコード\ref{src:success}のように記述する必要がある。
24
25 \begin{table}[html]
26 \lstinputlisting[label=src:success,caption=NullPointerExceptionにならない記述]{source/ShowData.java}
27 \end{table}
28 \subsubsection{singleton Code Segment}