3

我正在运行一个类的主要方法两次,同时通过不同的执行,并且正在查看在运行时唯一标识每个类的方法。在我自己身上创造一些东西很简单:

String sid = UUID.randomUUID().toString(); 

...但是每个正在运行的执行中是否有任何固有的东西- 执行类的一部分 - 我可以用作唯一标识符。

我们自己做了一些方法,看看我们不知道我们可以使用的东西。我们首先想知道 usingThread.currentThread().getName()但两者都是main。我不能使用toString(),因为没有实例。


编辑:
这个类(GettingRollingClient)是我同时运行两次的,试图在它们运行时区分两者......如果可以的话,重新使用Java特性:

java -cp "hazelcast-client-3.0.1.jar:hazelcast-3.0.1.jar:." GettingRollingClient
4

1 回答 1

2

您目前自己生成唯一 ID 的方法是最好的主意。

Java 和 JVM 规范没有定义自然的唯一标识符。这意味着任何固有的预先存在的 id 都将特定于操作系统或 JVM 实现。这会将您的代码绑定到特定平台并降低其可移植性。

是否UUID.randomUUID()是自己生成 id 的最佳方式取决于您的用例。一种替代方法是使用带有计数器的共享临时文件来跟踪所有当前正在运行的进程。

于 2013-09-06T14:51:56.257 回答