我在网上找到这本书:Threading in C#约瑟夫·阿尔巴哈里。我试过它的例子:
class ThreadTest
{
static void Main()
{
Thread t = new Thread(WriteY); // Kick off a new thread
t.Start(); // running WriteY()
// Simultaneously, do something on the main thread.
for (int i = 0; i < 10000000; i++) Console.Write("x");
Console.ReadLine();
}
static void WriteY()
{
for (int i = 0; i < 10000000; i++) Console.Write("y");
}
}
问题是,当我运行这个程序时(我在 for 循环中给出了更高的值以观察)我的 CPU 利用率一直保持在 100%。我不想要这个,我的意思是,有没有办法减少这个程序的 CPU 密集度?我刚接触多线程概念,所以我想我应该提前问一下。
最佳答案
如果您可以同时使用多个资源,则多线程可以改进您的应用程序。 例如,如果您有多个内核或多个 CPU,我相信上面的示例应该表现得更好。
或者,如果您有一个使用 CPU 的线程和另一个同时使用磁盘的线程,那么如果您使用多线程,它的性能也会更好。
但是,如果您只有一个 CPU 或一个单核,则上面的示例不会执行得更好。它的性能会更差。
关于c# - 线程示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561325/