Java jmx是否为每次调用创建一个新线程?

Java jmx是否为每次调用创建一个新线程?,java,jmx,volatile,Java,Jmx,Volatile,我有一个带有非易失性字段的类,在get方法中有一个mBean class Foo { int x; int get() { return x; } } 我可以确定mBean将获得变量的最新值吗? 更一般地说,jmx是如何调用这些方法的,它是否会在每次调用时创建一个新线程?(在这种情况下,我们可以确保获得最新值)是的,您将根据以同步方式读取/写入的x获得最新值。如果是原始类型,考虑使用 AtomicInteger < /代码>(或 AtomicDouble >代码>等)以避免自己编

我有一个带有非易失性字段的类,在get方法中有一个mBean

class Foo {
   int x;
   int get() {  return x; }
}
我可以确定mBean将获得变量的最新值吗?
更一般地说,jmx是如何调用这些方法的,它是否会在每次调用时创建一个新线程?(在这种情况下,我们可以确保获得最新值)

是的,您将根据以同步方式读取/写入的
x
获得最新值。如果是原始类型,考虑使用<代码> AtomicInteger < /代码>(或<代码> AtomicDouble >代码>等)以避免自己编写同步构造。 JMX是否为每次调用创建新线程,只需在
get()
方法中添加以下行即可确定:

System.out.println(“线程执行的get()”+thread.currentThread().getName())

这将打印线程名,如果每次调用时线程名不同,则表示使用了不同的线程