首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MultiCore系统中,线程在并行问题之外有什么用途?

在MultiCore系统中,线程在并行问题之外有什么用途?
EN

Stack Overflow用户
提问于 2009-12-23 12:08:46
回答 9查看 184关注 0票数 2

线程使得程序的设计、实现和调试变得非常困难。

然而,许多人似乎认为,程序中可以线程化的每一个任务都应该线程化,即使是在单个核心系统上也是如此。

我可以理解线程化,比如将在多核cpu上运行的MPEG2解码器(我已经这样做了),但是如果您的任务没有从并行实现中获得显着的性能,那么当您谈论单个核心系统甚至多核系统时,线程化所带来的巨大开发成本有什么理由呢?

或者更简洁地说,什么样的与性能不相关的问题值得线程处理?

编辑

嗯,我刚刚遇到了一个实例,它不受CPU的限制,但是线程有很大的不同:

TCP, HTTP and the Multi-Threading Sweet Spot

当试图通过高延迟网络连接将带宽最大化到另一个对等点时,多线程非常有用。非阻塞I/O使用的本地CPU资源要少得多,但设计和实现起来要困难得多。

EN

回答 9

Stack Overflow用户

发布于 2009-12-23 12:11:26

例如,在不阻塞用户界面的情况下执行CPU密集型任务。

票数 6
EN

Stack Overflow用户

发布于 2009-12-23 12:12:38

任何可能等待资源的应用程序(例如,从网络套接字或磁盘设备阻塞I/O )都可以从线程中受益。

在这种情况下,慢操作上的线程阻塞可以在其他线程继续运行时进入休眠状态(包括在某些操作系统下,GUI线程,如果操作系统不能与它联系一段时间,它将提供使用机会破坏它,认为它在某种程度上陷入了僵局)。

所以它并不仅仅适用于多核机器。

票数 5
EN

Stack Overflow用户

发布于 2009-12-23 12:12:01

一个有趣的例子是,一个need服务器--您需要能够处理与彼此无关的多个传入连接。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1952432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档