Thread.sleep()メソッド
2069 ワード
なぜsleepを使用するのかは、主に現在のスレッドを一時停止し、cpuフラグメントを他のスレッドに譲り、現在のスレッドの実行を遅らせるためです.
2つの方法:1つ目の方法はsleep静的メソッドのみを呼び出すことです.2つ目は、オブジェクトを取得してからsleep静的メソッドを呼び出すことです.2つ目の方法は、1回の関数呼び出しが多く、オブジェクト呼び出しによる静的メソッドも「静的」の定義にあまり合致しないため、効率が低い(静的メンバーはクラス名で直接アクセスすることが望ましい)が、機能的には一致している.非静的メソッドを呼び出す必要がある場合は、第2の方法を使用します.そうでない場合は、第1の方法を直接使用します.
スレッドがThreadを継承することによって実現される場合、この2つの方法には違いはありません.スレッドがRunnableインタフェースを実装することによって実装される場合、Threadクラスではなく、Threadを直接使用することはできません.sleep()はThreadを使用する必要があります.現在のスレッドの参照を得るためにcurrentThread()を呼び出すには、Threadを使用します.currentThread().sleep()で寝ます.マルチスレッドの場合、特に違いが顕著です.
次に例を示します.
2つの方法:1つ目の方法はsleep静的メソッドのみを呼び出すことです.2つ目は、オブジェクトを取得してからsleep静的メソッドを呼び出すことです.2つ目の方法は、1回の関数呼び出しが多く、オブジェクト呼び出しによる静的メソッドも「静的」の定義にあまり合致しないため、効率が低い(静的メンバーはクラス名で直接アクセスすることが望ましい)が、機能的には一致している.非静的メソッドを呼び出す必要がある場合は、第2の方法を使用します.そうでない場合は、第1の方法を直接使用します.
スレッドがThreadを継承することによって実現される場合、この2つの方法には違いはありません.スレッドがRunnableインタフェースを実装することによって実装される場合、Threadクラスではなく、Threadを直接使用することはできません.sleep()はThreadを使用する必要があります.現在のスレッドの参照を得るためにcurrentThread()を呼び出すには、Threadを使用します.currentThread().sleep()で寝ます.マルチスレッドの場合、特に違いが顕著です.
次に例を示します.
/**
*
* @author CheerForU
*
*/
public class MsgManage {
public static void main(final String[] args) {
try {
init();
// , ,
while (true) {
Thread.sleep(30000);
}
} catch (final Exception e) {
e.printStackTrace();
destroy();
}
}
//
public static void init() {
init();
}
//
public static void destroy() {
destroy();
}
}