| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 955 人关注过本帖
标题:事件的问题
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我晕 怎么又扯到操作系统了

这是必然的罢 线程调度 是操作系统的工作罢 这个 肯定有一定的规范 至于这个规范是不是文档化了 也就是 是不是公布了 不知道 可以查下相关资料。。
2010-10-18 12:52
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
以下是引用bobo2185355在2010-10-18 11:00:18的发言:

我现在唯一不明白的地方就是,举例:3个线程(a,b,c)EVENT初始化为置位,自动复位,当线程a得到时间片执行代码的时候,如果在一个时间片内没有执行完,被WINDOWS挂起到就绪队列,但是线程,b,c,因为此时EVENT的状态是复位的状态,2个线程都被WaitForSingleObjict所拒绝,那么WINDOWS是不是根本就不会把b,c线程放到就绪队列,而是放到阻塞队列,那么就绪队列只有线程a,我晕 怎么又扯到操作系统了,有点晕了 我把书上的代码段复制过来 但是不能全部复制 只把线程函数复制了吧 希望能得到解释,我晕 连我自己都不知道在问什么了,应该是3个线程时间片的分配问题吧,就像我所描述的 b,c线程根本就不会被放到就绪队列里面
_Counter    proc    uses ebx esi edi,_lParam

        inc    dwThreads
        invoke    SetWindowText,hWinCount,addr szStop
        and    dwOption,not F_STOP

        .while    ! (dwOption & F_STOP)
            invoke    WaitForSingleObject,hEvent,INFINITE
            inc    dwCounter1
            mov    eax,dwCounter2
            inc    eax
            mov    dwCounter2,eax
            invoke    SetEvent,hEvent
        .endw
        dec    dwThreads
        invoke    SetWindowText,hWinCount,addr szStart
        ret

_Counter    endp
我对操作系统的了解几乎为零!所以,我觉得你的理解是很正确的。
3个线程的时间分配问题,犹如大家一起排队上厕所:a进去了,大门就关上了;b、c只好在外面排队(阻塞队列),等待“开门”事件的发生;而a在里面发现,整个厕所只有一个蹲位(即CPU),她刚蹲下去拉了一半,就被(管理员)拉起来,站在“就绪队列”里,让其他人先上了;等轮到a的时间片,a拉完了,出来“开门”,于是才轮到b或C;有一点要明白:“开门”或“关门”事件都是在线程中执行的。
2010-10-18 13:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
“开门”或“关门”事件都是在线程中执行的

同理 如果 这线程老不放 其他的都执行不了 线程死锁。。
2010-10-18 13:28
bobo2185355
Rank: 2
等 级:论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
收藏
得分:0 
那我把帖子结了,等以后操作系统原理学到这里可能才会真的明白,谢谢各位,真的发现是小学生和大学生的差距
2010-10-18 16:52
快速回复:事件的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015836 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved