Unity3D中的多线程。线程是一个相当复杂的话题,但如果掌握了它,就可以从容的使用多个硬件处理器或处理很难划分管理数据块。
如在场景中用A*算法进行大量的数据计算,变形网格中操作大量的顶点,持续的要运行上传数据到服务器,二维码识别等图像处理,如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine。
线程是在程序中与其他线程同时运行的进行。在多处理器的计算机上可以做到多个线程的真正的同步,更多的线程取决于有多个处理核心。
编程时,总有个主线程执行你的代码,也可以创建额外的线程和主线程同时运行。而Unity中,你仅能从主线程中访问的组件,对象和Unity3D系统调用。任何企图访问这些项目的第二个线程都将失败并引发错误,这是一个要重视的一个限制。
所以当你写代码时,你认为一个函数开始并达到它执行的点后返回,同样你做的东西又在另外一个函数中执行,但又没有发生相应的变化。操作系统决定你代码的执行

本文探讨了Unity3D中的多线程使用,强调了多线程在处理复杂计算和并发任务时的优势。文章指出,由于Unity的限制,只能从主线程访问组件和系统调用,因此在编写多线程代码时需要采取同步措施,如使用lock关键字。还介绍了Loom库,用于在不同线程上安全地执行代码,提供RunAsync和QueueOnMainThread方法以简化多线程操作。
最低0.47元/天 解锁文章
2826

被折叠的 条评论
为什么被折叠?



