我对声明 方法同步有以下疑问。

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

我可以读到:



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

我尝试做一个例子:

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

这意味着将此 main() 方法声明为 同步 我不能同时运行此 jar 文件的 2 个实例?或者我错过了什么?

最佳答案

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

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

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

10-14 10:18
查看更多