ビッグジョブは選択科目システムは、複数のスレッドを必要としています。クレイジー研究。それを記録するために忘れないようにするに - ブログ
JavaのThreadクラスは、そのすべてのオブジェクトがスレッドスレッドまたはサブクラスである、スレッドを表すために使用されます。
実行を書き換えているThreadクラス、メソッドのサブクラスを定義した方法は、実行される実際のタスク・スレッドがある実行します。
ただし、スレッドが代わりに実行を使用することを開始し始めます。
メインスレッド(つまりメイン)はスレッドそのものです。プログラムが実行中に少なくとも一つのメインスレッドを持っています
スレッドクラス自体静的およびインスタンスメソッドは、静的メソッドは、(直接的にThread.currentThreadをcurrentThread)、オブジェクト呼び出しの具体例を用いて、のgetName()メソッドであってもよいです。SetNameメソッドはまた、名前を変更するために使用することができます。(例:this.setName(文字列名))
パブリック クラスFirstThreadは、Thread拡張 { プライベート int型のI; 公共 ボイドラン() { のために(;私は< 100 ; iが++ ) { システム。アウト .println(この .getName()+ "" + I)。 } } パブリック 静的 ボイドメイン(文字列引数[]) { ため(int型 i = 0 ; iが< 100 ; iは++ ) { システム。でる.println(。にThread.currentThread()のgetName()+ "" + I)。 もし(I == 20 ) { 新しいFirstThread())(始めます。 新しい。FirstThread())(スタート。 } } } }
私は独立している3件のスレッドがあり、結果の私は、このように出力がスクランブルされます。
私は=からがまた、20は、2つの新しいスレッドを始めたが、順番はまだ不明である(この実行では、マルチ出現Thread0をmain70)
thread0注文が不安定とスレッド1であります
thread010はthread10スレッド1は、内部には0で、thread0です。(二人は真のマルチスレッドで必要ロックとセマフォの主な理由であるランダムのある程度と、交互に11ではありません。)