在单线程计算系统中,一次执行一条指令,并且一次产生一个结果。加载和完成程序的时间取决于 CPU 需要完成的工作量。
多线程是一种编程方式,利用了 CPU 在多个核心上同时处理多个线程的能力。这种情况下不是逐个执行任务或指令,而是同时运行任务或指令。
默认情况下,在程序的开头会运行一个线程。这就是“主线程”。主线程会创建新线程来处理任务。这些新线程并行运行,通常在完成后将其结果与主线程同步。
如果有一些长时间运行的任务,这种多线程方法很有效。但是,游戏开发代码通常包含许多一次执行的小指令。如果为每个指令创建一个线程,最终可能会有许多线程,每个线程的生命周期都很短。这种情况下可能会挑战 CPU 和操作系统处理能力的极限。
设置一个线程池可以缓解线程生命周期的问题。但是,即使使用线程池,也可能会同时激活大量线程。线程数多于 CPU 核心数会导致线程相互竞争 CPU 资源,进而造成频繁的上下文切换。上下文切换是这样一个过程:在执行过程的中途保存一个线程的状态,然后处理另一个线程,再然后重建第一个线程以继续处理该线程。上下文切换是资源密集型的过程,因此应尽可能避免。
2018–06–15 页面已发布
在 2018.1 版中公开了 C# 作业系统 NewIn20181
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.