1. 什么是线程?
我知道这是一个基础性的问题,但我从它开始写起是有一个重要原因。这个理由会在本章后面变得清晰起来。
维基百科将线程描述为:可以与其它指令并发执行的一系列指令。
我强调并发执行是因为它对这次讨论至关重要。并发运行多个任务的能力使得线程对于模拟至关重要。
2. 关于内核与线程的简要说明
一个CPU可以有多个内核,而有些内核可以运行多个线程。例如,Ryzen Threadripper最多有64个内核,每个内核可以运行2个线程。这意味着,如果你编写的模拟属于高度多线程,你可能会有多达128个不同的任务同时发生。你可以用这些线程来运行NPC的人工智能大脑,或者在物理模拟中制造碰撞。
但请记住,大多数实际场景不会接近128个线程。即使是英特尔的旗舰i9 10900k都只是提供20个并发线程。不过,编写多线程代码意味着提供多个内核的设备可以同时发生多个任务。
3. 线程如何影响应用程序
即使你不依赖先进的人工智能,但几乎所有的MR应用都在某种程度上使用物理。例如,Hand Menu菜单中的按钮会使用物理来检测指尖何时接触按钮的表面。