最近在研究WINDOWS线程调度,主要的资料是WINDOWS操作系统原理中关于进程和线程管理的两章,
个人读了不下10编了,虽然对其机制有了点了解,但有些具体的多线程现象还是解释不通。
比如为什么通过延长进程的时间配额后,原本得不到运行的后台就可以得到运行呢?
得不到是因为被调度算法强占CPU了嘛?得到是因为饥饿补偿机制么?
求高手指点一些好书,我想更进一步的了解这方面的知识。谢谢!
参与者都有分,重点奖励推荐好书的朋友。

解决方案 »

  1.   

    我也刚在学习多线程编程
    一般需要在整个process结束(即本主线程结束)前留出一段足够的时间好让各子进程完成自
    己的工作,好像一般用Sleep(多少微秒),因为主线程与子线程是并发执行的,当创建子线程后(只要不挂起)且主线程还没退出就会运行它。
    《WINDOWS核心编程》这本书里面对进程线程都讲得很仔细。
      

  2.   

    楼上:
    你的留出一段时间的方法是不保险的,你怎么知道要留多少啊?另外,Sleep连毫秒都不能保证,更不用说微秒了。
    要等待子线程结束可以用WaitforSingleObject(ThreadHandle);
      

  3.   

    WINDOWS核心编程
    话说除了MSDN之外的第一参考书
      

  4.   

    Jeffrey Richter《WINDOWS核心编程》,第四版最经典,最新是第五版(没看过)。
    Jim Beveridge《WIN32多线程编程》(侯捷翻译的)
      

  5.   

    是啊,我也在学习这两本书。
    Jeffrey Richter《WINDOWS核心编程》,第四版
    Jim Beveridge《WIN32多线程编程》(侯捷翻译的)还有介绍windows操作系统的书,可以在dearbook上搜索到。