c# - 线程示例

标签 c# multithreading

我在网上找到这本书: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/

相关文章:

c# - Entity Framework 6、存储库模式和工作单元

c# - MySqlBulkUploader 将 Null 值从 CSV 插入到 MySql c#

c# - Visual Studio 2010 中的线程标记是什么?

c# - 如何仅在 SQL Server 中不存在记录时才添加记录?

c# - 使用 C# 进行语音转文本

c# - 为什么编译器不能推断大数是长数?

java - 用餐哲学家、Java 和监视器 : IllegalMonitorStateException

Java 如何等待线程退出或用户按 Enter 键

multithreading - 在Perl中实现看门狗

multithreading - 如何在 Python 中的循环内多线程操作