我对声明 主 方法同步有以下疑问。
所以阅读这个讨论:
Declaring the main method synchronized
我可以读到:
那么这个断言到底是什么意思呢?
我尝试做一个例子:
我有一个非常小的批处理应用程序,可以在数据库上做一些事情。此应用程序主要由 main() 方法组成。它我编译在一个可以执行的 .jar 文件中。
这意味着将此 main() 方法声明为 同步 我不能同时运行此 jar 文件的 2 个实例?或者我错过了什么?
最佳答案
不,那是不可能的。同步仅在同一个程序执行中起作用。如果你启动一个 jar 两次,它会启动两个不同的程序执行,每个都有自己的地址空间,它们不共享任何对象或内存。
如果你想防止同一程序的多次执行,你需要有一些用于外部锁定的东西,例如一个锁定文件。
关于java - 我可以将 main() 方法声明为同步方法以避免同时执行两次 .jar 文件(仅由 main() 组成)吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43582523/