MOFU MOFU

技術的なことから、趣味の分野までいろいろメモ程度に書いていきます

Java Threadの復習

最近、他人が書いたソースコードを読んでるんですが、変数名がわかりにくいんで、ストレスが溜まってます。あと、コメントも書いてて欲しかったなと思うところです。

それは、おいておくとして、Java Threadを使っていたので、なんとなく覚えていたのですが、曖昧なところがあったので復習です。

Threadの説明はいらないとして、
ユーザースレッドと、デーモンスレッドの違いから、

ユーザースレッドは、アプリケーションが作るスレッドで、すべてのユーザースレッドが終了すると、アプリケーションが終了します。

デーモンスレッドは、ユーザースレッドの終了と同時に、消えます。

ThreadのsetDaemonメソッドをつかってrunするまえに設定しておくと、メインスレッドが終了すると同時に消えます。

ちなみに、joinメソッドはそのスレッドの終了を待ちます。

あとは、synchronizedについてですが、これは、複数のスレッドが同時に処理をして、同じ変数を書き換え、そのときに割り込みがあった場合、想定の結果にならないことがあるので、その時に使います。
synchronizedメソッドにするか、オブジェクトを引数にいれ、ロックする方法があります。

だいぶ、忘れているなと実感