[NAME]
ALL.dao.concurrent.async-call

[TITLE]
异步函数调用

[DESCRIPTION]

异步函数调用(Asynchronous Function Call, AFC)将使一个函数调用作为轻任务执行。 它将立即返回
一个未来值以操作该轻任务(比如阻塞当前任务以等待该任务)。

任何一个函数调用后加!!将使该调用变成异步调用。 
     
   1  routine MyFunction( n = 10 )
   2  {
   3      for( i = 1 : n ) io.writeln( i )
   4  }
   5  f = MyFunction( 20 ) !!
   6  io.writeln( f.value() )
     


当一个类实例的多个方法被以异步函数调用的方式执行时,它们的执行将是互斥的, 也就是说,在任何时
刻都最多只有一个方法的异步调用(轻任务)被执行。 这样类实例的行为跟 monitor 一样。