1

process_flag(priority、Level)を使用してプロセスの優先度を設定したいと思います。私はそれが私のコードのどこに行くべきかについて少し混乱していて、例を見つけることができないようです。

私が見ることができる2つのオプションは次のとおりです。

(1)プロセスを生成する前にフラグを設定します。

process_flag(priority, max),
register(myprocess, spawn(fun() -> myprocess() end)),

(2)スポーンされた後、関数内にフラグを設定します。

myprocess() ->
process_flag(priority, max),
%do stuff

また、オプション1が正しい場合、normal他のプロセスを生成する前にフラグをにリセットする必要がありますか?

4

1 に答える 1

5

オプション2が正しいものです。ドキュメントに記載されているように、process_flag/2「この関数を呼び出すプロセスに特定のフラグを設定します」。生成されたプロセスにプロセスフラグが継承されることはないと思います。

ドキュメントでは、max優先度レベルを使用しないことも提案されています。

max優先度レベルはErlangランタイムシステムの内部使用のために予約されており、他の人が使用することはできません

于 2012-11-14T15:37:35.070 に答える