2016-09-28 18 views
0

ErlangからCライブラリをどのようにして並列に呼び出すことができますか?ErlangおよびCライブラリ。並列実行

私はマルチスレッド(内部のmutex)をサポートするCライブラリを持っています。本当に並行してerlangから数千のスレッドからこのライブラリを起動したいと思います。どうしたらいいですか?

Erlang CポートドライバまたはCノードまたはNIF経由でこれを達成できますか?

答えて

0

コールCライブラリとはどのようなライブラリですか?スレッドセーフなライブラリですか?ちょうどNIFでそれを呼び出す。そうでなければ、mutexで共有状態へのアクセスを制限するか、いつものようにロックする必要があります。 Erlangには魔法の弾丸はありません。 Erlangがあなたに提供するものは、意味のある方法でそれを管理するためのツールです。

+0

私のCライブラリからスレッドセーフな関数を呼び出すことを意味します。 NIFの実行時間は0.1msで制限されていますが、それは私には適していません。 –

+0

@EduardBondarenko:次に、ダーティスケジューラを使うか、自分のスレッドを作ることができます。しかし、パフォーマンス要件が非常に厳しい場合を除き、ポートを使用することをお勧めします。 –

+0

さて、パフォーマンス上の理由からプレーンポートを使用できないため、cポートドライバを使用することを検討します。 C libのスレッドで作業すべきでしょうか? Erlangスレッドを使用する方法はありませんか?どうも。 –

関連する問題