【系统运维】单线程和多线程的几个疑问与解答。
2012-05-11 16:49
309 查看
Q1:单核CPU上单线程和多线程的执行效率问题。
A:由于单核CPU上在任意时刻都只能有一个线程在运行。那么,在不考虑I/O等待的情况下,单线程的执行效率显然要高,因为免除了多线程上下文切换的开销。
Q2:多线程程序比单线程程序能获得更多的CPU时间片
A:这种说法是不正确的。尽管多线程程序竞争到CPU的概率大于单线程程序,但是存在一个线程优先级的问题以及短作业优先的抢占算法,故这种说法不正确。
Q3:关于超线程
A:超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU、L2
Cache(二级缓存)则保持不变,这些部分是被分享的。
采用超线程即是可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
A:由于单核CPU上在任意时刻都只能有一个线程在运行。那么,在不考虑I/O等待的情况下,单线程的执行效率显然要高,因为免除了多线程上下文切换的开销。
Q2:多线程程序比单线程程序能获得更多的CPU时间片
A:这种说法是不正确的。尽管多线程程序竞争到CPU的概率大于单线程程序,但是存在一个线程优先级的问题以及短作业优先的抢占算法,故这种说法不正确。
Q3:关于超线程
A:超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU、L2
Cache(二级缓存)则保持不变,这些部分是被分享的。
采用超线程即是可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
相关文章推荐
- IOS多线程系统学习之线程的操作
- (Redundancy)关于服务器冗余的几个疑问,请知道的帮忙解答.
- Android多线程系统概述(sundy深入浅出)之进程和线程
- 影响Java线程数、Server连接数的几个系统参数
- 多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数
- Appium0.18.x迁移到Appium1.x须知事项(灰常有用,解答了本人几个疑问)
- Appium0.18.x迁移到Appium1.x须知事项(灰常有用,解答了本人几个疑问)
- Appium0.18.x迁移到Appium1.x须知事项(灰常有用,解答了本人几个疑问)
- Appium0.18.x迁移到Appium1.x须知事项(灰常实用,解答了本人几个疑问)
- 企业运维,至少包括如下几个大方面: 1,桌面运维(以windows为主,工资偏低,桌面运维经理可以达到8K到10K,很多人在公司里干的就是安装windows系统,windows里的QQ坏了重装下,砸个
- 多线程开发(一)-安卓系统的线程
- Android性能优化5 多线程并发的性能问题所幸的是,Android系统为我们提供了Looper、Handler、MessageQueue来帮助实现上面的线程任务模型: Looper: 能够确保线
- android系统中的多线程(一): 关于在android中启动线程以及线程间的交互
- 关于git(SourceTree)的几个疑问及解答(待自己学会来解答)(已解答)
- 应用系统运维建设必备的几个方面
- 小问题可能存在大问题,希望大神帮忙解答。Spark本地运行模式中单线程与多线程问题之setMaster("local")可以运行,但是设置成setMaster("local[3]")或setMaste
- android系统中的多线程(一): 关于在android中启动线程以及线程间的交互
- android系统中的多线程(一): 关于在android中启动线程以及线程间的交互
- 几个开源的运维管理系统介绍
- Appium0.18.x迁移到Appium1.x须知事项(灰常有用,解答了本人几个疑问)