社区
英特尔边缘计算技术
帖子详情
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?
goding
2008-05-14 09:30:10
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?有多核cpu下编写多线程需要要注意的问题有那些?(c#方面)
...全文
621
4
打赏
收藏
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?有多核cpu下编写多线程需要要注意的问题有那些?(c#方面)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tt_timon
2008-05-29
打赏
举报
回复
因为单核处理器只能将多个指令流交错执行,并不能真正将它们同时执行,所以,单核 结构上的多线程应用程序的性能就受到了限制。在单核平台上,多线程一般都被当做是一种能够实现延迟隐藏的有效编程手段。
单 核平台上的这种性能瓶颈在多核体系结构中就不存在了。在多核平台上,各线程根本不需要为了得到某种资源而挂起等待,因为各线程都是在相互独立的执行核上并 行运行的。例如,假设有两个线程都要执行移位操作,那么,在单核平台上,两个线程需要竞争唯一的移位单元,因而必须顺序执行,而对于双核平台而言,因为存 在两个移位单元,所以两个线程能够并行执行而无须竞争。
多 核平台为开发人员提供了一种优化应用程序的渠道,那就是通过仔细分配加载到各线程(或者各处理器核)上的工作负载(也就是实现各线程的负载均衡)就能够得 到性能上的提升。并且,开发人员也可以对应用程序代码加以优化,使其能够更加充分地使用多个处理器资源,进而达到提升应用程序性能的目的。
在面向多核平台设计多线程应用程序的时候,开发人员必须采取与面向单核平台时不同的设计思想。在单核平台上,为了简化多线程应用程序的编写和调试,开发人 员可能会作一些假设。但是这些假设可能不适用于多核平台。对于这两种平台,设计思想的不同之处主要体现在存储缓存(memory caching)和线程优先级(thread priority)两个方面。
在 存储缓存方面,多核平台上的每个处理器核都拥有自己的cache。在某个时间点上,一个处理器核上的cache与另一个处理器核上的cache可能会出 现不同步的现象。下面给出一个例子来解释可能出现的这种cache不同步问题。假设有两个线程分别运行在双核处理器的两个执行核上,线程1在执行核1上运 行,线程2在执行核2上运行,而两个线程分别对邻近的存储器单元进行读写操作。由于cache存储器是基于局部性原理来工作的,故不同的数据可能存放在 cache的同一行中。因此,即使某个线程所需的位于某个cache块中的数据没有被重写过,存储系统还是可能会将该cache块标记为无效。这个现象就 是众所周知的伪共享(false sharing)问题。但是在单核平台上,因为只有唯一的cache供各线程共享,所以就不存在cache同步问题。
在 单核与多核平台上采用相同的线程优先级策略也会导致不同的程序行为。例如,假设一个应用程序有两个进程,这两个进程的优先级不同。在进行性能优化的时候, 开发人员会假定优先级较高的线程可以一直享用执行资源,而不会受到优先级较低线程的干扰。这在单核平台上是正确的,因为操作系统的调度程序不会为优先级较 低的线程分配CPU资源,而对于多核平台而言,因为调度程序是在不同的执行核上调度这两个线程,所以两个线程是同时执行的,也就是说在这种条件下,线程的 优先级不起作用。如果开发人员仍然遵循优先级较高的线程不会受到优先级较低线程的干扰的思想对代码进行优化,这样的代码在多核和多处理器系统上运行就会非 常不稳定。
appleshao
2008-05-29
打赏
举报
回复
这问题我也想问 UP上去。
goding
2008-05-24
打赏
举报
回复
up
sageking2
2008-05-24
打赏
举报
回复
没什么区别.
多线程
与
多核
编程
.pdf
在
多线程
编程
中,还需要特别注意线程间的同步问题,这通常涉及到锁和条件变量等机制的使用。对于复杂的
多线程
场景,建议使用更高级别的框架和库来简化开发过程,如.NET框架提供的线程类库。 总之,
多线程
与
多核
编程
...
多线程
与
多核
编程
多线程
与
多核
编程
是现代计算机系统中提高性能和响应速度的重要技术。在多任务环境中,操作系统通过
多线程
实现并发执行,使得用户能够同时处理多个任务,从而提升用户体验。而
多核
CPU
则提供了硬件层面的并行计算能力...
多核
和
单核
中
多线程
及单线程的特点
在计算机科学领域,
多核
和
单核
处理器是两种常见的硬件架构,它们对
多线程
和单线程的处理方式有着显著的
区别
。理解这些特点对于优化软件性能和编写高效的代码至关重要。 首先,我们来探讨单线程。单线程是指一个程序...
1分钟看懂
CPU
多发射超标量/
多线程
/
多核
概念的
区别
总而言之,多发射、超标量、
多线程
和
多核
技术都是为了在有限的物理空间和能耗下尽可能地提高
CPU
的处理能力,它们是现代计算机体系结构中的关键技术,并在不断地发展中。随着技术的进步,未来还可能出现更多的创新...
windows系统
多核
CPU
内核线程管理
随着
多核
处理器的普及,深入理解并掌握
多核
CPU
下的线程管理机制,对于提升软件的实时性和资源利用效率具有不可估量的价值。未来,随着计算技术的进一步发展,Windows操作系统及其
多核
线程管理机制将继续进化,以适应...
英特尔边缘计算技术
567
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章