【发布时间】:2011-12-19 12:24:01
【问题描述】:
我在互联网上找到了这本书:Threading in C# Joseph Albahari。我试过它的例子:
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在这里是什么样子的?还有,你有多少个内核?
-
但是先生,我想有效地监控网络中的 300 个节点,我认为多线程是解决方案,但它会将 cpu 提高到如此高的利用率。我还应该使用什么来有效地监控 300 个节点而不会对 cpu 造成太大的负载?
-
@user1068846:那是完全不同的故事。请发布一个描述该问题的不同问题。这与您在这里向我们展示的内容无关。
-
@Joe - 我的评论稍微简化了一点。但是,当您在线程上启动 CPU 密集型任务时,目的是在多核上更高的 CPU 利用率。
标签: c# multithreading