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 回答