Parallel processing Erlang和C库。并行执行
如何从Erlang并行调用C库 我有一个支持多线程(内部互斥)的C库,我想以真正并行的方式从erlang的数千个线程启动这个库。我怎么做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节点或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以下。