private def invokeSynchronous(address, method, ...) { yield; //此处为返回到runThreaded()的地方。 //此处为进入runSynchronized();的地方 val result = native.invoke(address, method, ...); //查看initialize()中invoke的定义以获取结果值的信息。 yield; //并返回runSynchronized(); //并且下一个runThreaded()又进入了。 return result[1]; } private def invokeDirect(address, method, ...) { val result = native.invoke(address, method, ...); //查看initialize()中invoke的定义以获取结果值的信息。 if (result[0] == true) { return result[1]; } else { return invokeSynchronous(address, method, ...); } } def invoke(address, method, ...) { if (isDirect(address, method)) { return invokeDirect(address, method, ...); } else { return invokeSynchronous(address, method, ...); } }