2

FreeBSD、OSX、iOSでのC/Objective-Cの環境でうまく機能する関数型言語を検討しています。私の最善の策は、Haskellで記述された特定の関数用の関数型ライブラリを作成し、GHCでコンパイルし、FFIを使用してこの関数型コードを標準のC呼び出しとして呼び出すことです。

私の質問は、この状況で並行性をどのように処理するかです。 関数型言語を使用する動機の1つは、不変のデータセットを操作したいという問題に対して、多くの並列化を実行したいということです。ただし、ここで詳しく説明するアプローチを使用すると、並列化は可能ですか?コンパイルして2つのスレッドを使用するように指示できるようですが、スレッドの代わりにGCDを使用する方法はありますか(プラットフォームごとに自動的にスケーリングされる並列化の量など、GCDがスレッドよりも優れているすべての理由で)?または、私が説明しているようにFFIを使用すると、マルチスレッド機能が完全に失われますか?

この言語は私がやろうとしていることと最もよく一致しているように見えますが、本当にそれを学ぶためにかなりの時間を費やす前に、それが適切かどうかを学びたいと思います

4

1 に答える 1

2

GHC のランタイムは GCD の必要性を置き換えますよね? また、すでにクロスプラットフォームの並列処理を提供しています。

于 2011-04-03T19:06:35.690 に答える