多线程 - 我需要这个吗?

时间:2015-03-11 23:33:26

标签: c# multithreading

我只是想检查为此处理任务实现多个线程是否会实际加快处理时间。我想它不会,但想确定。

示例:假设我想读取文件的每个字节,然后将每个字节输出到新文件。 我不想这样做,只是听我说。

因此,如果我开始将一个循环中的每个字节串行输出到一个新文件,那么如果我改为将该文件分成多个部分然后读入并将其写入不同的文件中,它会加快进程吗?线程?

我认为它不会,因为即使线程是分开的并且可以运行它们自己的串行执行,你仍然必须通过处理器,所以最终,所有字节都是单独执行的,而不是实际上同时执行。 / p>

警告:我不是在谈论具有多核与单核的机器的差异。我想知道每台电脑。如果我在一台机器上运行的版本不是多线程的版本而不是多线程的版本,那么速度是否真的会增加?

我知道我可以写一个程序来做这个并测试它但是想先检查一下我是否正确地考虑这个问题。

感谢。

1 个答案:

答案 0 :(得分:3)

这取决于您使用的硬件以及您正在处理的内容。如果你正在进行大量的硬盘读写,那么你的瓶颈可能就是磁盘读写操作而不是CPU。如果你在RAM中进行大量处理,那么多线程将绝对加速你在多核机器上的处理。