在playframework的文檔here已被寫入:await()如何工作?
public static void loopWithoutBlocking() {
for(int i=0; i<=10; i++) {
Logger.info(i);
await("1s");
}
renderText("Loop finished");
}
我真的不明白它究竟是如何工作的:
例如,當我們呼籲在第一次請求I = 1的方法,然後..解鎖和等待..和新的請求去該方法,然後再次從i = 0開始?當第一次請求喚醒時,它會有i = 1或0或2?
它在這裏沒有使用任何有狀態的機制?像存儲我..之間的請求例如?
thx的完整解釋。但是,只是爲了檢查:是否應該繼續前一點。如果在等待i = 1之後,我們從等待中返回後,對於特定的一個請求,我仍然是= 1?即當它進入等待狀態並且從該保存的點繼續時,它以某種方式獲得方法狀態的快照? – ses 2011-05-08 09:36:42
是的。延續的想法是,它從它離開的地方繼續(所以我將是1)。所以從程序員的角度來看,就像在執行中暫停一樣。 Play會處理線程如何發佈並在稍後繼續的複雜性。 – Codemwnci 2011-05-08 09:39:58