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()で寝ます.マルチスレッドの場合、特に違いが顕著です.
次に例を示します.
/**
 *      
 * @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();
    }
}