読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

スレッドのライフサイクルの話。ついでに凝集度と結合度のメモ。

<スポンサーリンク>

凝集度と結合度って何?

オブジェクト指向プログラミングをする上でよく話に出てくるのが、凝集度と結合度という概念である。
凝集度というのは、クラスの機能と属性の関連性の強さを表す。
関連する機能(メソッド)や属性(変数)をあちこちに分散させずに、適切なクラスに分割することで、凝集度が高くなる。
凝集度を高くする目的は、システムの保守性、拡張性を向上させることである。

結合度というのは、オブジェクト間の依存度のことだ。
オブジェクト間の依存性は低いほうが好ましいと言われている。
オブジェクト間の依存性が低いことを疎結合と言われていて、あるクラスの実装の変更が、他のクラスに影響を及ぼさないようにすることで、疎結合にして、コードの拡張性と保守性を高めることが目的である。

スレッドのライフサイクル

スレッドには様々な状態がある。

状態 説明
New(新規) インスタンス化された後で、まだ開始されていないスレッドの状態
Ready/Runnable(準備完了/実行可能) スレッドオブジェクトのstart()メソッドが呼び出されると、スレッドは最初に実行可能状態になる。実行可能状態にあるスレッドは、いつでも実行できる状態でスケジューラから選択されるまで待機する。
Running(実行) スレッドが実行中の状態
Nonrunnable(実行不可能) 生存状態にあるが実行の対象外になった場合、Nonrunnableになる。Nonrunnableには、「Blocked」「Soeeping」「Waiting」の3つの状態がある。
Dead(死亡) run()メソッドの実行を完了したスレッドは死亡したと見なされる。死んだスレッドはスレッドとして再度実行することはできない。スレッドはゾンビにはんあれないのだ。

新規から実行可能状態に遷移させるには、するためにはThread.start()メソッドを使う。
実行状態から明示的に実行可能状態に戻すにはThread.yield()メソッドを使う。
スレッドを実行不可能の状態に背にさせるには、Thread.sleep()メソッドやwait()メソッド使う。
実行不可能状態には3つの状態があるのは上述したが、Blocked,Sleepng,Waitingの状態である。

休眠:sleep()メソッド
待機:wait()メソッド
→notify()メソッド,notifyAll()メソッドでwait状態の解除

読んだ本

SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0両対応(試験番号310-055、310-065)

SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0両対応(試験番号310-055、310-065)

感謝のプログラミング

今回で感謝のプログラミングは【450時間目】
10000時間まで、あと【9550時間】