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