我正在尝试使用java为一个由几台计算机组成的系统建立一个模拟。其中每台计算机由进程(而不是线程)表示。我读过关于在java中使用多进程的文章,但不幸的是,我并不是很了解它,并且仍然对它感到困惑。
哪个更好地表示这样的系统,是fork/ join模型还是使用java中的进程构建器创建多进程?它们之间有什么区别??
发布于 2019-06-03 00:37:13
Fork/join通常指的是jvm将用于各种“并行”活动的内置线程池。因此,这个概念与“真正的”进程无关,正如人们所说:它是关于线程的。
另一方面,ProcessBuilder使您能够启动在“外部”运行的独立进程。这意味着与线程相比,启动它们的开销要大得多。不同进程之间的通信也需要更高的努力。另一方面,您可以终止另一个进程,这对于线程来说并不是那么简单。
关键的区别在于,您可以在单个进程中使用多个线程,但反之亦然。您可以将该进程视为外部容器。线程是存在于容器中的“较小”盒子。
我给新手的建议是:使用线程。在Java中使用线程更加“自然”。与进程相比,您还可以找到更多关于线程主题的有用资源。
https://stackoverflow.com/questions/56416790
复制相似问题