2016-06-15 6 views
0

スレッドを複数回呼び出すと、 "ILLEGAL THREAD STATE EXCEPTION"がスローされますが、threadStatusを0に戻すことができればどうなりますか(NEWスレッドと見なされるため)。threadStatusを1回呼び出した後に0に戻すことはできますか?

enter image description here

ともそれは "私たちはロックを保持" とは何を意味するのでしょうか?

+0

んが、それが不可能ではない、それはまた、必要ありません。ただ、ロックを保持するということは、特定のリソース(この場合は変数)を使用することができる唯一のスレッドであることを意味します。 – Fildor

+0

何ができないのですか?threadStatusを0またはcalに戻すthreadStatusを変更した後に2回リンキングスレッドを実行しますか? –

+0

両方。 'threadStatus'はプライベートなので変更できません。したがって、スレッドを2度コールすることも不可能です。 – Fildor

答えて

2

スレッドのライフサイクルごとに、NEW状態に戻る方法があります。これは、スレッドがNEW状態に戻ることができず、thread.start()が実行できるので、同じスレッドオブジェクトでthread.start()を2回呼び出すと、ILLEGAL THREAD STATE EXCEPTIONが発生する理由です。threadがNEW状態で。

Thread Life Cycle

私はあなたがスレッドを再利用したい場合、あなたはJavaでExecutorsを使用することができ、@Nicolasでaggree。

関連する問題