gpt4 book ai didi

java - 我能否将 main() 方法声明为同步的,以避免 .jar 文件(仅由 main() 组成)同时执行两次?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:02 24 4
gpt4 key购买 nike

关于声明 ma​​in 方法同步,我有以下疑虑。

所以阅读这个讨论: Declaring the main method synchronized

我能读懂:

Being synchronized prevents multiple instances from being executed concurrently which might be desirable.

那么这个断言到底是什么意思呢?

我试着做一个例子:

我有一个非常小的批处理应用程序,它在数据库上做一些事情。该应用程序主要由 ma​​in() 方法组成。它被编译成一个可以执行的.jar文件。

这意味着声明这个ma​​in()方法为synchronized我不能同时运行这个jar文件的2个实例?还是我遗漏了什么?

最佳答案

不,那是不可能的。同步只在同一个程序执行中起作用。如果你启动一个 jar 两次,它会启动两个不同的程序执行,每个程序都有自己的地址空间,它们不共享任何对象或内存。

如果你想防止同一个程序的多次执行,你需要有一些外部锁定的东西,例如一个锁定文件。

关于java - 我能否将 main() 方法声明为同步的,以避免 .jar 文件(仅由 main() 组成)同时执行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43582523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com