マルチスレッド(2) - いくつかの一般的に使用される方法およびキーワードのスレッド

1.start()、実行()

  start()メソッドは、このメソッドの実装後、スレッドが実際に実行可能状態に入り、スレッドを開くための方法です。run()メソッドは行わ特定の事業活動は、一般的にrun()メソッドをオーバーライドするために必要とされるスレッドです。

2.stop()

  スレッドの終了時に()メソッドを停止し、糸を直接終了し、すぐにロックを保持し、ロックが正確に一貫性を維持するために使用されるオブジェクトであるスレッドを解放します。書き込みスレッドが半分書かれているような、他のオブジェクトは、このオブジェクトが壊れたオブジェクトを書かれている読んで、オブジェクトが悪い書き込まれます、スレッドを終了することを余儀なくされたが、ロックが解除されました。

3.interrupt()、isInterruptedを()、中断()

  割り込み()メソッドがインスタンスメソッドであり、それがターゲット・スレッドを割り込み通知は、割り込みフラグが設定されています。スレッドに相当しますが、要人の外にする通知を送信します。将来の目標スレッドに関しては独自のターゲットスレッドに対処する方法を確認してください。isInterruptedを()メソッドがインスタンスメソッドであり、彼は現在のスレッドが中断されるかどうかを決定しました。中断()静的メソッドは、現在のスレッドの割り込み状態を決定するために用いることができるであり、現在のスレッドの割り込みフラグのステータスをクリアします。

4.sleep()

  睡眠()メソッドは、いくつかの時間のためにスリープ状態に現在のスレッドをさせることです、それは例外:InterruptedException割り込み例外がスローされます。スレッドが()は、睡眠、割り込みが発生した場合、この例外が生成されます寝るときに例外をキャッチして処理する必要があります。この例外は、実行されていません。中断されると、例外がスローされ、それはフラグビットをクリアします次のサイクルが始まるとき、対処しなければ、あなたはこの中断をキャプチャすることはできません、それは例外処理にフラグを設定し、その後、一般的です。睡眠()メソッドは、任意のオブジェクトのロックリソースを解放しません。

5.wait()と通知()

  待機()待機メソッドは、現在のスレッドのコール待ち()メソッドのオブジェクトインスタンスがオブジェクトに待機するクラスオブジェクトのメソッドです。それでは、それの終わりを待って?別のスレッドがこれまでのオブジェクトの通知()メソッドを呼び出すまで待つことを通します。そのようなオブジェクトの例には、複数のスレッド間の通信手段となりました。待って()と(通知)だけの方法多分、それは、対応する同期計算書に含まれなければならない、呼び出すことはできません、我々は(最初のターゲットオブジェクトのリスナーを取得する必要があり、そして待つ)と通知()メソッドは、実行後にリリースされますこのリスナー。待つ()メソッドは、ターゲットオブジェクトのロックを解除します。

6.suspend()和レジューム()

  一時停止()メソッドがスレッドを掛け、履歴書()メソッドは、指定された履歴書まで継続する)(スレッド必見を中断し続けます。スレッドは中断が発生し、それがロックに占領されたアクセスするには、他のスレッドが原因に関与されている間だけ継続する履歴書()の動作に遭遇し、適切に機能することはできません、任意のロックリソースを解放しません同時に()メソッドを一時停止します。実際には、ビューのそのポイントからスレッド、スレッドの状態を一時停止、または一時停止RUNNABLE、判断に影響を与えます。そのため、おそらくこの方法は、それが推奨されていない、放棄されています。

7.join()和yeild()

  join()メソッドは、彼が唯一のターゲットスレッドが終了するまで、現在のスレッドをブロックされていたであろう、無限の待機を示しています。与えられた時間の目標スレッドよりも多くがまだ実行されている場合、最大待機時間を提供します(長いミリ秒)に参加、現在のスレッドが待機し、実装を下に続行されません。

  yeild()メソッドは静的メソッドで、実装されていれば、彼は現在のスレッドのCPUを聞かせ。CPUは、現在のスレッドが実行されていない表すものではありませんし、CPUのリソースの競合することになるしましょう。スレッドが重要でないか、低い優先順位がある場合は、重要なスレッドにリソースがそれを行うには、このメソッドを呼び出すことができます。

8.volatile

  揮発性のほのめかしは、変数を宣言すると、仮想マシンを伝えることです、この変数は、いくつかの修正プログラムまたはスレッドをする可能性があります。変更後、すべてのスレッドがこの変更を見ることができることを確実にするために、仮想の機会は、この変数の可視性を確保するために、いくつかの手段を取ります。

9.デーモンスレッドとユーザスレッド

  デーモンスレッドは、ガベージコレクションスレッド、JIT-スレッドとしてバックグラウンド静かに体系的なサービスで、システムの守護者です。ユーザスレッドは、スレッドのすべてのユーザーエンドは、その後、デーモンスレッドが存在しないならば、全体のプロセスはオーバーとなり、ため、操作を完了するためにシステムを完成するためにワーカースレッドのシステムです。場合は、Javaアプリケーション、デーモン・スレッドのみ、Java仮想マシンの非難。

  デーモンスレッドがThread.setDaemon(真)、()開始前に設定する必要があります。

10.synchronize

  重要な役割を同期することは、スレッド間の同期を達成することです。その仕事は、スレッド間のセキュリティを確保するために、その都度1つのスレッドのみ、コードブロックを入力することができるように、符号同期をロックすることです。使用法:、直接インスタンスメソッドで、静的メソッドに直接影響をロックオブジェクトを知っています。

おすすめ

転載: www.cnblogs.com/wangyongwen/p/11204494.html