【发布时间】:2010-12-29 11:23:31
【问题描述】:
线程使程序的设计、实现和调试变得更加困难。
然而,许多人似乎认为程序中可以线程化的每个任务都应该是线程化的,即使在单核系统上也是如此。
我可以理解像 MPEG2 解码器这样将在多核 cpu 上运行的线程(我已经这样做了),但是当您谈论单核系统甚至如果您的任务没有从并行实现中获得显着的性能,那么是多核系统吗?
或者更简洁地说,什么样的与性能无关的问题可以证明线程是合理的?
编辑
我刚刚遇到了一个不受 CPU 限制但线程有很大不同的实例:
TCP, HTTP and the Multi-Threading Sweet Spot
在尝试通过高延迟网络连接将带宽最大化到另一个对等方时,多线程非常有用。非阻塞 I/O 将使用更少的本地 CPU 资源,但设计和实现会更加困难。
【问题讨论】:
标签: multithreading language-agnostic concurrency