• erlang receive语句大诠释


    摘自
    http://blog.chinaunix.net/uid-20395183-id-1951974.html

    erlang 消息接收语句 (receive ... end) 的用法很细腻.一书写得不是透彻,特分析综合如下.

    receive
    Pattern1 [when Guard1] -> Expression1;
    Pattern2 [when Guard2] -> Expression2;
    ...
    after Interval -> Expression0
    end

    1. receive语句当且仅当有一个消息到达时才被触发;
    2. receive语句当且仅当ExpressionN(N=0,1,2,...)被求值后退出且计时器清零;
    3. receive语句触发后若无ExpressionN被求值,就挂起等待下一次触发;
    4. receive语句通常植入一个独立的进程;
    5. receive语句至少在Interval(毫秒)内,会有ExpressionN被求值;
    6. receive语句通常被置入一个函数,并被创建一个进程;
    7. ExpressionN可以包含函数重入,通常是在Expression0;
    8. Expression(1,2,..)如果被求值的话,after子句被忽略;
    9. ExpressionN只要有一个被求值,即告推出;
    10. after子句缺失等价于after infinity;
    11. after 0意味着如果Expression(1,2,..)不被求值的话,Expresion0 立刻会被求值;
  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/ShankYan/p/5399127.html
Copyright © 2020-2023  润新知