【发布时间】:2012-09-28 04:40:59
【问题描述】:
如果我想同时运行 3 个任务,我现在正在考虑两种方法。
由于我是在 linux 中运行程序,所以我可以在 shell 脚本中执行。
java Task1 & java Task2 & java Task3 &
或者,我可以使用一个 java 程序来生成三个子线程来完成任务。
我想知道哪种方式更有效。我怀疑shell方式会创建多个JVM实例?
【问题讨论】:
-
当然,shell 脚本会创建多个 JVM 实例——这就是你告诉它要做的事情。如果您尝试完成的任务是独立的(它们不需要相互通信),那么 shell 脚本是最简单的方法(也是最有意义的方法)。
-
至于更高效,这取决于您所说的高效 - 更少的内存使用、交换空间、执行时间、磁盘访问、编程时间、安全性等......以及代码的作用
-
请记住,如果您在一个 JVM 中使用多个线程执行此操作,您将在线程之间共享静态变量等。在不了解您的应用程序的情况下,我不能说这是否会成为问题,但这是您需要考虑的事情。如果你有三个独立的 JVM,那么每个都有自己的静态变量。
标签: java linux multithreading shell jakarta-ee