簡記:協(xié)程和線程區(qū)別
協(xié)程(協(xié)同程序Coroutine): 同一時間只能執(zhí)行某個協(xié)程。開辟多個協(xié)程開銷不大。協(xié)程適合對某任務進行分時處理。 Unity提供了StartCoroutine來開啟協(xié)程,當你在 StartCoroutine 的函數(shù)體里處理一段代碼時,利用 yield語句等待執(zhí)行結(jié)果,這期間不影響主程序的繼續(xù)執(zhí)行,可以協(xié)同工作。
舉個例子:LoadLevelAsync(異步加載關(guān)卡)后臺加載場景的方法。允許你在后臺加載新資源和場景,再利用協(xié)同,你就可以在前臺用 loading 條或動畫提示玩家游戲處于加載中,同時后臺協(xié)同處理加載的事宜。
進程progress:進程是線程的容器。
線程thread: 同一時間可以同時執(zhí)行多個線程。開辟多條線程開銷很大。線程適合多任務同時處理,并發(fā)并行。
協(xié)程:具體多返回點的方法,時間分片(幀),Unity只能是單線程,只能在主線程調(diào)用Api,對象