单核CPU上的单线程和多线程

Daven172 2011-11-30 07:34:39
1、单核CPU上,同一时刻只能有一条线程运行 (10分)
2、单核CPU上运行的单线程程序和多线程程序,从运行效率上看没有差别 (10分)
3、多线程程序比单线程程序能获得更多的CPU时间片 (10分)

以上说法对吗?为什么?
(都不考虑超线程技术)
...全文
981 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfasri 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 daven172 的回复:]
1、单核CPU上,同一时刻只能有一条线程运行 (10分)
2、单核CPU上运行的单线程程序和多线程程序,从运行效率上看没有差别 (10分)
3、多线程程序比单线程程序能获得更多的CPU时间片 (10分)

以上说法对吗?为什么?
(都不考虑超线程技术)
[/Quote]
1. 是同一时刻只能有一条线程运行
2. 要看具体情况, 假如线程都是内存操作, 不存在任何IO等待, 那么单线程效率是最高的, 但假如存在较多的IO等待, 多线程比单线程效率要高, 不论单核还是双核
3. 两个程序谁获得CPU时间片多, 要看当前程序是否为激活状态(例如界面), 也要看当前程序设置的优先级别.
明天去抢劫 2011-12-13
  • 打赏
  • 举报
回复
TRUE
FALSE 进程的线程越多,这个进程在系统里得到的时间片多
TRUE

kemee 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tcige 的回复:]
还不考虑超线程,你懂htt吗,说来听听啊
[/Quote]
最近这类人越来越多了啊
chenjiawei007 2011-12-01
  • 打赏
  • 举报
回复
只说第三点
1)要考虑线程优先级
2) 按照默认标准的是每个线程分到差不多20ms的时间片,但是多线程要考虑多线程的上下文切换和同步的开销,所以在单核CPU上,单线程的效率更为突出。
百事烟 2011-11-30
  • 打赏
  • 举报
回复
1true
2flase
3看怎么说了,其实一样,又不一样

单cpu,比如有个写硬盘(或读光驱)的操作,多线程是必要的
Gloveing 2011-11-30
  • 打赏
  • 举报
回复

1 true
2 false
3 宏观上一般是的
haojj123 2011-11-30
  • 打赏
  • 举报
回复
但是,我觉得一个CPU就只能算是一个出口了
  • 打赏
  • 举报
回复
打个比方:
一个超市只有一个收银员 (CPU)
多线程: 多个出口
单线程:一个出口
tcige 2011-11-30
  • 打赏
  • 举报
回复
还不考虑超线程,你懂htt吗,说来听听啊
sevancheng 2011-11-30
  • 打赏
  • 举报
回复
1 true
2 3 false

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧