其實很簡單,首先需要理解進程和線程是怎么一回事:進程是Windows系統中的一個基本概念,他包含着運行一個程序所需要的基本資源。一個正在運行的應用程序在操作系統中被視為一個進程,進程可以包括一個或多個線程。
進程和線程的區別通過以上,一目了然。
再談談線程和協程的區別。一般應用一個應用程序只使用線程這一“資源”。
需要明確,Unity只使用了一個線程,但是,我們需要”同時做很多事“,那Unity作為單線程,該如何
去做,協程,就來了,協程是一種”偽線程“。
協同程序(coroutine).,即協作式程序,一系列互相依賴的協程間依次使用CPU,每次只有一個協程工作,而其他協成處於休眠狀態。協程實際上是在一個線程中,只不過每個協程對CPU進行分時,協程可以訪問和使用unity的所有方法和component。
同一時間只能執行某個協程,協程適合對某個任務進行分時處理。
控制代碼在特定的時間執行。
協程不是線程,也不是異步執行,跟Update一樣,在主線程中執行。
不用考慮同步和鎖的問題。
協程是一個分部組件,遇到條件(yield return)會掛起,直到條件滿足才會被喚起執行后面的語句。
