Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Parallel processing Erlang和C库。并行执行_Parallel Processing_Erlang - Fatal编程技术网

Parallel processing Erlang和C库。并行执行

Parallel processing Erlang和C库。并行执行,parallel-processing,erlang,Parallel Processing,Erlang,如何从Erlang并行调用C库 我有一个支持多线程(内部互斥)的C库,我想以真正并行的方式从erlang的数千个线程启动这个库。我怎么做 我可以通过Erlang C端口驱动程序或通过C节点或NIF来实现这一点吗?您所说的调用C库是什么意思,是什么样的库?它是线程安全库吗?打电话就行了。如果没有,则必须像往常一样通过互斥或锁定来限制对共享状态的访问。Erlang中没有任何魔弹。Erlang为您提供的是以一种有意义的方式管理它的工具。您所说的C库是什么意思?什么样的库?它是线程安全库吗?打电话就行了

如何从Erlang并行调用C库

我有一个支持多线程(内部互斥)的C库,我想以真正并行的方式从erlang的数千个线程启动这个库。我怎么做


我可以通过Erlang C端口驱动程序或通过C节点或NIF来实现这一点吗?

您所说的调用C库是什么意思,是什么样的库?它是线程安全库吗?打电话就行了。如果没有,则必须像往常一样通过互斥或锁定来限制对共享状态的访问。Erlang中没有任何魔弹。Erlang为您提供的是以一种有意义的方式管理它的工具。

您所说的C库是什么意思?什么样的库?它是线程安全库吗?打电话就行了。如果没有,则必须像往常一样通过互斥或锁定来限制对共享状态的访问。Erlang中没有任何魔弹。Erlang为您提供的是以有意义的方式管理它的工具。

我的意思是从我的C库调用线程安全函数。NIFs的运行时间限制为0.1ms,这不适合我。@EduardBondarenko:那么你可以使用脏的调度程序或创建自己的线程。但是使用端口应该是首选的方式,除非你有很强的性能要求,并且输入一个串行化的数据会导致它被杀死。我们应该在C库中使用线程吗?没有办法使用Erlang线程?Thx.@EduardBondarenko:我不知道,我一直在想办法把工作切成小块,并保持在1ms以下。我的意思是从我的C库调用线程安全函数。NIFs的运行时间限制为0.1ms,这不适合我。@EduardBondarenko:那么你可以使用脏的调度程序或创建自己的线程。但是使用端口应该是首选的方式,除非你有很强的性能要求,并且输入一个串行化的数据会导致它被杀死。我们应该在C库中使用线程吗?没有办法使用Erlang线程?爱德华邦达连科:我不知道,我总是能找到一种方法,将工件切割成更小的碎片,并将其保持在1ms以下。