为什么Javac不能在多个内核上运行?

时间:2017-09-28 05:43:48

标签: java parallel-processing compiler-construction javac multicore

它看起来很普通,但是javac不能同时编译的技术原因是什么?我读到eclipse编译器是并行的,为什么不用javac?

2 个答案:

答案 0 :(得分:1)

编译器实际并行工作是非常不寻常的,我找不到任何说Eclipse的Java编译器是例外的来源。

eclipse有能力做的是同时并行编译多个文件。这与Eclipse自带的Java编译器无关。如果它确实使用了javac,它可以并行运行多个javac实例 - 这没有问题。事实上,当您运行具有多个线程的构建时,正是构建工具(如maven)所做的事情。

答案 1 :(得分:-2)

我认为它使 javac 程序变得简单,如果它是内部并行的,那么必须处理许多竞争条件,这使事情变得复杂。要使用多核,你可以创建多个javac进程来达到同样的目标,似乎makefile和gcc就是这样工作的。

  

“保持简单和愚蠢”