【发布时间】:2021-12-28 16:17:53
【问题描述】:
我正在为 Java 语言制作编译器,我希望它能够并行编译许多文件。
我的班级Compiler.java 有构造函数Compiler(String fileName) 和方法compile()
所以要在我的 main 中编译一个文件,我所做的就是:
Compiler c1 = new Compiler("file1.c");
c1.compile();
我想要做的是一个文件列表(比如说 ["file1.c", "file2.c", "file3.c"] )正在执行 c1.compile(), c2.compile( ), c3.compile() 并行(c'i' 是 file'i' 的编译器)。
我还是Java.util.concurrent 的初学者。在 C 语言中,我只是 fork 或使用带有 join 方法的 POSIX 线程库。但是在 Java 中,我发现还有更多关于线程池等的东西。任何帮助都将不胜感激。
【问题讨论】:
-
线程池并不是 Java 独有的。尽管在某些语言中,标准库具有一种或多种线程池类型,但在 C 或 C++ 中,您仍然必须使用第 3 方库,或者自行开发。跨度>
-
线程池的想法是通过重复使用它们来避免在服务器环境中创建线程并在每个请求中将其拆除一次的开销。对于编译器,这可能不适用。只需根据需要创建和退出线程。
标签: java multithreading java.util.concurrent java-threads