0
我试图从多个线程中进行RInside调用,并且遇到此错误。多线程使用一个RInside实例
terminate called after throwing an instance of 'std::runtime_error'
what(): Error evaluating: qnorm(.65, mean=0,sd=1)
的代码行导致此是:
//within main.cpp//
std::shared_ptr<RInside> R = std::make_shared<RInside>();
//within some_class::some_function(std::shared_ptr<RInside> R)//
double value = Rcpp::as<double>(R->parseEval("qnorm(.65, mean=0,sd=1)"));
R是正被80个+线程之间共享一个std :: shared_ptr的。
我假设这个问题是一个锁定的问题,因为RInside实例忙于执行第一parseEval当另一个用武之地。
难道我就在我的假设? 谢谢!
这在已详细讨论之前:你根本就没有围绕R.一个多线程的上下文 – 2015-02-12 02:48:30
谢谢。我会让所有R接口顺序。 – 2015-02-12 03:35:59
如果你去多个_process_你可以使事情工作。 “mpi /'子目录中最早提供的示例之一。 – 2015-02-12 03:42:00