Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多线程与多应用程序_Java_Multithreading - Fatal编程技术网

Java 多线程与多应用程序

Java 多线程与多应用程序,java,multithreading,Java,Multithreading,我想实现这样的目标: 持续检查流程是否每“x时间单位”启动一次 当发现进程处于“启动任务Y”状态时 由于该应用程序的性质,它将运行很长一段时间,因此我担心内存消耗(任务Y相当大) 是否最好使用: 多线程 或 2罐(一罐用于检查,一罐用于任务Y) 对于第二种解决方案,我不必一直在内存中加载我的所有应用程序,只有当检查返回true时。它与多线程的工作原理相同吗 谢谢 从广义上讲,这不会有多大区别。无论采用哪种方法,您都需要足够的内存来处理同时运行的任务X和任务Y 如果有什么区别的话,多线

我想实现这样的目标:

  • 持续检查流程是否每“x时间单位”启动一次

  • 当发现进程处于“启动任务Y”状态时

由于该应用程序的性质,它将运行很长一段时间,因此我担心内存消耗(任务Y相当大)

是否最好使用:

  • 多线程

  • 2罐(一罐用于检查,一罐用于任务Y)
对于第二种解决方案,我不必一直在内存中加载我的所有应用程序,只有当检查返回true时。它与多线程的工作原理相同吗


谢谢

从广义上讲,这不会有多大区别。无论采用哪种方法,您都需要足够的内存来处理同时运行的任务X和任务Y

如果有什么区别的话,多线程(单应用程序)方法的内存占用可能会稍微低一些,因为它不需要加载公共元素的两个副本(例如JDK和标准库本身)。但我怀疑在实践中会有很多

编写多线程应用程序也可能更简单。与尝试将消息发送到其他进程相比,将任务Y提交到进程时出错的次数更少。(如果另一个进程没有运行,会发生什么情况?如果您正在删除触发器文件并且磁盘已满,或者您正在通过端口进行通信并获得IOException,或者…)会发生什么情况