从命令提示符多次运行java程序

时间:2014-03-22 11:10:24

标签: java multithreading

如果我从多个命令提示符运行相同的多线程程序,会发生什么?每个命令提示符将在不同的jvm中运行。共享资源如何通过不同的jvm中的线程访问?

5 个答案:

答案 0 :(得分:1)

  

如果我从多个命令提示符运行相同的多线程程序,   会发生什么?

每个程序或应用程序都有单独的JVM。 (无论申请是相同还是不同)

  

共享资源如何通过不同jvm中的线程访问?

由于同一多线程应用程序由不同的JVM执行,因此不同的JVM没有任何(资源)共享。 由于有不同的java应用程序同时运行(多处理)机器(内存,处理器等)的共享资源由OS处理。

注意:如果您询问单个多线程应用程序中的共享资源,请参阅oracle docs

答案 1 :(得分:0)

假设JVM没有做巫术魔术(知道Oracle我不能确定),每个Java实例都会运行它自己的东西并分配它自己的资源。至于主机如何处理线程和资源分配是一个完整的主题,有大量的讨论,没有关于如何做到的好答案(除了“正确”)

答案 2 :(得分:0)

要在不同的JVM之间共享资源,您需要一个外部播放器,Redis数据库或类似的,但是如果您的程序是多线程的,为什么需要运行不同的进程?为什么不一次运行它?

答案 3 :(得分:0)

每个命令提示符将在不同的jvm中运行 - 是的。 不同的jvms资源共享将由操作系统决定。

答案 4 :(得分:0)

如果两个JVM实例运行相同的多线程应用程序,则无法进行资源共享。请记住,资源共享和并发控制是在运行单个JVM进程的多个线程之间进行的。两个运行相同应用程序代码的JVM进程无法进行任何并发控制和资源共享。例如,如果第一个JVM进程打开文件,则第二个JVM进程将无法访问该文件。 我希望这回答了你的问题。如果您正在尝试某些特定内容,请对其进行描述,以便我们为您提供建议。