就我个人而言,理想的线程数量是3:一个用于UI,一个用于CPU资源,一个用于IO资源。
但我可能是错的。
我刚刚开始接触它们,但我一直使用一个线程用于UI,另一个线程用于其他所有任务。
何时应该使用线程以及如何使用?我如何知道是否应该使用它们?
就我个人而言,理想的线程数量是3:一个用于UI,一个用于CPU资源,一个用于IO资源。
但我可能是错的。
我刚刚开始接触它们,但我一直使用一个线程用于UI,另一个线程用于其他所有任务。
何时应该使用线程以及如何使用?我如何知道是否应该使用它们?
很不幸,使用线程没有硬性规定。如果你拥有太多的线程,处理器将花费大量时间在它们之间的生成和切换上。使用太少的线程会导致你的应用程序无法获得所需的吞吐量。此外,使用线程并不容易。像C#这样的语言使它更加容易,因为你有像ThreadPool.QueueUserWorkItem
这样的工具。这使得系统能够管理线程的创建和销毁。这有助于减轻创建新线程以传递任务的开销。你必须记住,创建一个线程不是一个你可以"免费"得到的操作。启动一个线程是有成本的,因此应该始终考虑到这一点。
根据你用来写应用程序的语言,你将决定需要多么担心使用线程。
我发现最常需要显式创建线程的情况是: