4

別の静的同期メソッドを呼び出して、同期としてラベル付けされたメインメソッドを持つJavaの例を見ました。その結果、基本的に、他のメソッドは、mainメソッドが戻った後にのみ別のスレッドで実行されます。

そのような構成にはどのような実用的な機能がありますか?

public class SynchronisedMain {

    public static synchronized void main(String[] args) throws InterruptedException {
        new Thread(new Runnable() {
            @Override
            public void run() {
                thingy();               
            }
        }).start();
        System.out.println("Kickstarted thingy thread.");
        TimeUnit.MILLISECONDS.sleep(1000);
    }

    public static synchronized void thingy() {
        System.out.println("Thingy!");
    }
}
4

2 に答える 2

5

これは、アプリが完全に終了する前に何らかのクリーンアップ作業を行う、その場しのぎの「アプリケーション クローズド ハンドラー」としておそらく役立ちます。かなり工夫されていますが…

于 2012-06-29T12:38:32.310 に答える
3

main 関数は、プログラムへのエントリ ポイントとしてのみ使用できるということはありません。静的であるため、他のクラスが を呼び出せない理由はありませんSynchronisizedMain.main()。同期すると、複数のインスタンスが同時に実行されるのを防ぐことができます。これは望ましいことです。

于 2012-06-29T12:42:17.830 に答える