Mercurial > hg > Papers > 2015 > sugi-master
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}