相关疑难解决方法(0)

防止启动Java应用程序的多个实例

我想阻止用户多次并行运行我的java应用程序.

为了防止这种情况,我在打开应用程序时创建了一个锁定文件,并在关闭应用程序时删除了锁定文件.

当应用程序运行时,您无法打开另一个jar实例.但是,如果通过任务管理器终止应用程序,则不会触发应用程序中的窗口关闭事件,也不会删除锁定文件.

如何确保锁定文件方法有效或我可以使用其他机制?

java runtime executable-jar

21
推荐指数
4
解决办法
2万
查看次数

声明主方法同步

我看到一个 Java 示例,其中有一个 main 方法标记为 synchronized,调用另一个静态同步方法。结果是,基本上,其他方法仅在主方法返回后才在单独的线程上运行。

这样的构造有什么实际功能?

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!");
    }
}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

4
推荐指数
1
解决办法
3878
查看次数