社区
进程/线程/DLL
帖子详情
请问Windows线程间的转换时间到底是多少
firstary
2005-10-23 04:25:31
Windows核心编程上说每20ms操作系统切换一次线程.
我做了个测试,在一个基于对话框的程序里运行两个线程,每个线程中100次循环用QueryPerformanceCounter查询当时时刻并转换成时间显示在一个Console中,从结果可以看到线程的来回切换,但是每个线程只运行了1~2ms啊,我的CPU是P4 2.4GHz的
请问这是为什么
...全文
1444
12
打赏
收藏
请问Windows线程间的转换时间到底是多少
Windows核心编程上说每20ms操作系统切换一次线程. 我做了个测试,在一个基于对话框的程序里运行两个线程,每个线程中100次循环用QueryPerformanceCounter查询当时时刻并转换成时间显示在一个Console中,从结果可以看到线程的来回切换,但是每个线程只运行了1~2ms啊,我的CPU是P4 2.4GHz的 请问这是为什么
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Featured
2005-10-31
打赏
举报
回复
《编程高手箴言》中这样解释:
Windows 95线程调度使用的是这样的一种算法,即把大部分时间给那些急需的线程。CPU时间间隔用硬件时钟中断,操作系统内部计时器中断处理调度决定另一个程序是否需要运行,如果运行,则切换到另一个线程上。Windows 95的时间片是20毫秒,也就是说,一秒钟内,理论上可在50个线程之间进行强制切换,但如果所有的线程都主动放弃CPU或等待系统,则切换的频率就会很高,每秒切换4、5千次也不奇怪。
ChenLiuqing
2005-10-31
打赏
举报
回复
mark
meishi
2005-10-31
打赏
举报
回复
线程主动请求释放CPU时,以及当有更高优先级的线程创建且处于就序状态时,这两种情况切换的时间可以认为是0,因为此时线程以及切换,绝大部分是这两种情况。
当局有相同优先级的线程同时处于就绪状态时,此时线成的切换时间据说是17ms,这种情况出现的好。
zhxk
2005-10-27
打赏
举报
回复
是的,支持:)
DoItFreely
2005-10-26
打赏
举报
回复
一个线程阻塞会立即导致任务切换(或者说线程调度),所以这种情况下调度的间隔不是20ms,而是立即 - 如果当时没有其他繁重的运算
gohappy_1999
2005-10-24
打赏
举报
回复
mark
skykeen
2005-10-24
打赏
举报
回复
MARK
qrlvls
2005-10-24
打赏
举报
回复
上下文交换的时间是极短的,系统时间分片大概是 20ms 或 10ms 左右
线程一次运行了多长时间与时间片的长度并没有太大关系,这还与当前系统中其他进程的状况有关,因为 windows 是可抢占优先级的系统,因此时间片在这个问题上不能说明问题
pomelowu
2005-10-23
打赏
举报
回复
100ns左右吧
oyljerry
2005-10-23
打赏
举报
回复
QueryPerformanceCounter跟你的cpu等有关,一般精度可以达到us
lianglp
2005-10-23
打赏
举报
回复
20ms
每个线程一次运行的时间片最大是这个值左右,
但如果在这之内,你的线程处理空闲状态的话,操作系统会自动
切换到需要运行的线程去,所以你看到的才会有这个情况。
因为一般来说,系统的CPU时间都是处于空闲状态的,因为CPU处理的
速度太快了,你可以把线程的优先级调高点,运行一个死循环,保存
你的机器像挂掉一样。
firstary
2005-10-23
打赏
举报
回复
另外,QueryPerformanceCounter的精度是多少啊
JDK 1.8 64位.rar
Java JDK 1.8 64位
进程
线程
004
Windows
线程
切换的三种方式
文章目录主动切换(调用API)KiSwapContext函数分析哪些API调用了SwapContext函数总结时钟中断切换如何中断一个正在执行的程序系统时钟时钟中断的执行流程总结
时
间
片管理1.
时
间
片到期什么是
时
间
片?
时
间
片什么时候发生改变?CPU
时
间
片到期了如何处理?CPU
时
间
片总结2.存在备用
线程
总结 主动切换(调用API) 之前我们已经学习了模拟
Windows
线程
切换的代码,里面用于
线程
切换的...
Windows
线程
的状态及
转换
(简单易懂,程序员面试常问)
Windows
线程
的状态及
转换
(简单移动,程序员面试常问) 就绪状态 (Ready):进程已获得除处理机外的所需资源,等待执行 **备用状态(Standby):**已选择好处理器,正等待上下文切换。系统中每个处理器上只能有一个 处于备用状态的
线程
运行状态(Running):完成上下文切换,
线程
进入运行状态,直到内核抢先、
时
间
片用完、线 程终止或进入等待状态 **等待状态(Waiting):*...
【
Windows
线程
开发】
线程
基础
本篇文章来带领大家了解
Windows
线程
,了解
线程
的基本概念,了解
线程
的创建方式,以及一些简单的
线程
操作。
Windows
平台上多
线程
编程
Windows
平台上多
线程
编程 多
线程
(multithreading)是一种并发编程的方式,它允许程序同时执行多个任务。 1.功能 并发执行:多
线程
技术使得一个程序能够同时运行多个任务,这些任务在逻辑上相互独立,但在执行过程中可能共享某些资源。 资源共享:在多
线程
程序中,多个
线程
可以访问共享的内存空
间
,这些共享资源包括变量、数据结构等。 同步与互斥:为了保证多
线程
程序的正确性和效率,需要实现
线程
之
间
的同步和互斥,以避免数据竞争和死锁等问题。
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章