1

我想使用 process_flag(priority, Level) 来设置进程的优先级。我对它应该在我的代码中的位置感到有点困惑,似乎找不到一个例子。

我可以看到的两个选项是:

(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 回答