0
ErlangからCライブラリをどのようにして並列に呼び出すことができますか?ErlangおよびCライブラリ。並列実行
私はマルチスレッド(内部のmutex)をサポートするCライブラリを持っています。本当に並行してerlangから数千のスレッドからこのライブラリを起動したいと思います。どうしたらいいですか?
Erlang CポートドライバまたはCノードまたはNIF経由でこれを達成できますか?
ErlangからCライブラリをどのようにして並列に呼び出すことができますか?ErlangおよびCライブラリ。並列実行
私はマルチスレッド(内部のmutex)をサポートするCライブラリを持っています。本当に並行してerlangから数千のスレッドからこのライブラリを起動したいと思います。どうしたらいいですか?
Erlang CポートドライバまたはCノードまたはNIF経由でこれを達成できますか?
コールCライブラリとはどのようなライブラリですか?スレッドセーフなライブラリですか?ちょうどNIFでそれを呼び出す。そうでなければ、mutexで共有状態へのアクセスを制限するか、いつものようにロックする必要があります。 Erlangには魔法の弾丸はありません。 Erlangがあなたに提供するものは、意味のある方法でそれを管理するためのツールです。
私のCライブラリからスレッドセーフな関数を呼び出すことを意味します。 NIFの実行時間は0.1msで制限されていますが、それは私には適していません。 –
@EduardBondarenko:次に、ダーティスケジューラを使うか、自分のスレッドを作ることができます。しかし、パフォーマンス要件が非常に厳しい場合を除き、ポートを使用することをお勧めします。 –
さて、パフォーマンス上の理由からプレーンポートを使用できないため、cポートドライバを使用することを検討します。 C libのスレッドで作業すべきでしょうか? Erlangスレッドを使用する方法はありませんか?どうも。 –