2016-06-28 9 views
1

gen_serverを実行している場合、Erlangは複数のコアを利用していますか? gen_serverに別の2つのhandle_castがあり、頻繁に呼び出されている場合は並行して実行できますか?私は、handle_castの1つがキューにデータを入力し、もう1つが同じキューからデータを削除して処理するという設計があるからです。キューはgen_server状態に保持されます。私が見ているように、問題は、状態を返すときに新しいキューを返さなければならないということです(新しいアイテムが追加されたり、取り出されたアイテムが削除された状態)。これらが並行して実行されている場合、キュー内で競合状態や不一致が発生する可能性があります。これは本当ですか?handle_cast、複数のコア、およびキュー

答えて

4

あなたの質問に対する答えはノーです。 gen_serverは、単一のErlangプロセスで実行されます。単一のプロセスを同時に実行できる複数のアクティビティに分解することはできません。

関連する問題