我现在唯一不明白的地方就是,举例: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