1.如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine.
2.Unity编程时,总有个主线程执行你的代码,也可以创建额外的线程和主线程同时运行,而Unity中你仅能从主线程中访问Unity的组件,对象和Unity系统调用,任何企图访问这些项目的第二个线程都将失败并引发错误,这是一个要重视的限制,要确保一次只有一个线程来修改变量。
3.而提到多线程就要提到 Unity 非常常用的协程,然而协程并非真正的多线程。协程其实是等某个操作完成之后再执行后面的代码,或者说是控制代码在特定的时机执行。而多线程在 Unity 渲染和复杂逻辑运算时可以高效的使用多核 CPU,帮助程序可以更高效的运行。通常可以将需要大量计算的算法内容,放置到多线程中执行,包括逻辑框架也可以放到多线程中执行。
4.适用于:
1) 大量耗时的数据计算
2) 网络请求
3) 复杂密集的I/O操作
注意:
时间切片的核心思想是:如果任务不能在50毫秒内执行完,那么为了不阻塞主线程,这个任务应该让出主线程的控制权,使浏览器可以处理其他任务。让出控制权意味着停止执行当前任务,让浏览器去执行其他任务,随后再回来继续执行没有执行完的任务。
所以时间切片的目的是不阻塞主线程,而实现目的的技术手段是将一个长任务拆分成很多个不超过50ms的小任务分散在宏任务队列中执行。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删