某一个时间执行一个线程?

gaoisbest1122 2012-11-27 11:01:33
大家好,我有几个问题,如下:
[1]

这个图是我任务管理器上‘性能’栏的截图,可以看到,分成了四个部分,分成四个部分代表什么意思呢?
我的电脑是双核的,为什么分成了四个部分呢?
[2] 一个单核CPU,某一个时间点,只有一个进程执行,对吗?
[3] 一个单核CPU,某一个时间点,有多个线程执行,对吗?
[4] 多线程技术为的是提高CPU使用率,而不是提高运算速度?
谢谢各位!
...全文
393 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-12-10
  • 打赏
  • 举报
回复
引用 8 楼 gaoisbest1122 的回复:
若一个PC是双核的,但开启了5个线程,那可以知道哪个核执行了哪个线程吗?是不是哪个核执行哪个线程是操作系统安排的?
很难知道是哪个核执行了哪个线程,实际上即便是 双核CPU 只开启2个线程,你都很难知道是哪个核正在执行哪个线程,因为是频繁切换的。 是操作系统安排的。
gaoisbest1122 2012-12-09
  • 打赏
  • 举报
回复
引用 6 楼 ldh911 的回复:
引用 4 楼 gaoisbest1122 的回复:第一个问题,如果电脑本身没有开启超线程,那么这个图就是两个部分了吧?表示两个核心? 是的,你可以去BIOS里面把 超线程(HT) 关闭掉,再进操作系统看看就非常清楚了。
若一个PC是双核的,但开启了5个线程,那可以知道哪个核执行了哪个线程吗?是不是哪个核执行哪个线程是操作系统安排的?
MiceRice 2012-11-28
  • 打赏
  • 举报
回复
引用 4 楼 gaoisbest1122 的回复:
第一个问题,如果电脑本身没有开启超线程,那么这个图就是两个部分了吧?表示两个核心?
是的,你可以去BIOS里面把 超线程(HT) 关闭掉,再进操作系统看看就非常清楚了。
zqfddqr 2012-11-28
  • 打赏
  • 举报
回复
双核四线程 i3啊 单核就是每个时间点只能单线程 实现多线程需要轮询时间片什么的 操作系统帮你搞定了 不用你管 多核心有几个每个时间点可以执行几个线程 实现超过核心数的线程也是轮询 这都是操作系统的事 你可以找本操作系统的书看看.
sd4324530 2012-11-27
  • 打赏
  • 举报
回复
CPU同一时间点,肯定只能干一件事的 看上去你的CPU好像同时做了很多事,那是由于时间片轮的关系
MiceRice 2012-11-27
  • 打赏
  • 举报
回复
[1] 代表每个处理单元的负载情况;估计你开启了超线程,那么双核CPU每个核会模拟出两个处理单元; [2] 如果细分到CPU指令层面的话,是的; [3] 如果细分到CPU指令层面的话,不是,仍然只有一个线程在执行; [4] 这两个并无矛盾;如果你能把一个算法分到多个线程同步执行,然后再汇总结果的话,就能提高运算速度啊。
zhaoming262350 2012-11-27
  • 打赏
  • 举报
回复
如果你的电脑是单核的,那么在人和一个固定的时间点上,只能处理一个线程,其他线程等待CPU 的调动。 多线程技术并一定能提高处理速度,运行速度与很多因素有关,举个简单的例子,即使你的CPU 处理速度超快,可是内存太小,不能跟上CPU 的运行速度,那也不会快。
gaoisbest1122 2012-11-27
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
[1] 代表每个处理单元的负载情况;估计你开启了超线程,那么双核CPU每个核会模拟出两个处理单元; [2] 如果细分到CPU指令层面的话,是的; [3] 如果细分到CPU指令层面的话,不是,仍然只有一个线程在执行; [4] 这两个并无矛盾;如果你能把一个算法分到多个线程同步执行,然后再汇总结果的话,就能提高运算速度啊。
第一个问题,如果电脑本身没有开启超线程,那么这个图就是两个部分了吧?表示两个核心?
vcmfcjavabbs 2012-11-27
  • 打赏
  • 举报
回复
答: (1)四个部分的每一部分表示一个CPU内核的使用情况。 (2)进程是一个程序在一个数据集合上动态执行的过程。进程是资源分配的基本单位,而线程是CPU调度的基本单位。严格地讲,操作系统调度某个进程中的一个线程占用CPU,而不是让一个进程占用CPU。 (3)某一个时间点,最多有一个线程在一个CPU内核上执行。操作系统以某种算法选择一个状态为“就绪”的线程占用CPU。一个进程中包含一个或多个线程,这些线程并发执行。在多CPU内核的机器上,一个进程的多个线程可以同时在不同的CPU内核上执行;在单核CPU的机器上,这些线程以操作系统的调度次序轮流占用CPU。 (4)线程可能在执行的过程中进入等待状态,比如等待从网络上接收数据、等待把数据写入外部存储设备。如果系统只有一个线程,CPU此时只能等待这些操作完成。在多线程环境中,当一个线程进入等待状态时,操作系统可以让另一个线程占用CPU,以提高CPU的使用率。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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