Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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_C_Multithreading_Pipe_Simulated Annealing - Fatal编程技术网

仅当通过文件接收(非用户)输入时才执行的Java程序

仅当通过文件接收(非用户)输入时才执行的Java程序,java,c,multithreading,pipe,simulated-annealing,Java,C,Multithreading,Pipe,Simulated Annealing,作为我研究项目的一部分,我编写了一个实现模拟退火的Java搜索程序。但是,这种搜索不仅仅发生在Java程序中,因为我应该使用另一个用C编写的程序来计算总体成本函数。因此,基本上搜索例程如下所示: 示例成本函数:最小化{A+B} 其中,表达式的第一部分A将在我的程序中完成,第二部分B将是从C程序计算的正则化项。我知道这看起来很奇怪,我必须这么做,但我没有时间/资源/适当的背景来重新实现作为Java程序一部分的正则化程序。基本上,我试图通过两部分搜索来搜索值的最佳向量 我希望从Java输出当前的解决

作为我研究项目的一部分,我编写了一个实现模拟退火的Java搜索程序。但是,这种搜索不仅仅发生在Java程序中,因为我应该使用另一个用C编写的程序来计算总体成本函数。因此,基本上搜索例程如下所示:

示例成本函数:最小化{A+B} 其中,表达式的第一部分A将在我的程序中完成,第二部分B将是从C程序计算的正则化项。我知道这看起来很奇怪,我必须这么做,但我没有时间/资源/适当的背景来重新实现作为Java程序一部分的正则化程序。基本上,我试图通过两部分搜索来搜索值的最佳向量

我希望从Java输出当前的解决方案(作为C程序理解的格式化文件),并将其提供给C程序进行正则化(我已经完成了这一部分)。这就是我所处的困境:当C程序运行时,我希望让我的Java程序等待,直到它从C程序接收到输入(以文件的形式)。基本上,我的程序向另一个程序提供输入,然后停止它的执行(暂时),直到C程序完成它的工作,并返回一个值文件,用于重新计算值,以便在退火搜索的下一次迭代中使用

我猜我应该使用一些线程方法,比如wait和notify,但我真的不确定。如果程序依赖于用户输入,这将是非常简单的。但目前的程序只在接收到文件输入时执行

请告知!如果这个问题冗长且令人困惑,我提前道歉。我愿意澄清任何问题。谢谢。

基本上:

准备好C部分后,通过Runtime.exec()生成流程,打开输入和输出流,以其识别的格式输入数据,然后从其输出流读回最终结果并对其进行解析。

可能的重复