Java Threadの復習
最近、他人が書いたソースコードを読んでるんですが、変数名がわかりにくいんで、ストレスが溜まってます。あと、コメントも書いてて欲しかったなと思うところです。
それは、おいておくとして、Java Threadを使っていたので、なんとなく覚えていたのですが、曖昧なところがあったので復習です。
Threadの説明はいらないとして、
ユーザースレッドと、デーモンスレッドの違いから、
ユーザースレッドは、アプリケーションが作るスレッドで、すべてのユーザースレッドが終了すると、アプリケーションが終了します。
デーモンスレッドは、ユーザースレッドの終了と同時に、消えます。
ThreadのsetDaemonメソッドをつかってrunするまえに設定しておくと、メインスレッドが終了すると同時に消えます。
ちなみに、joinメソッドはそのスレッドの終了を待ちます。
あとは、synchronizedについてですが、これは、複数のスレッドが同時に処理をして、同じ変数を書き換え、そのときに割り込みがあった場合、想定の結果にならないことがあるので、その時に使います。
synchronizedメソッドにするか、オブジェクトを引数にいれ、ロックする方法があります。
だいぶ、忘れているなと実感