最近在研究WINDOWS线程调度,主要的资料是WINDOWS操作系统原理中关于进程和线程管理的两章,
个人读了不下10编了,虽然对其机制有了点了解,但有些具体的多线程现象还是解释不通。
比如为什么通过延长进程的时间配额后,原本得不到运行的后台就可以得到运行呢?
得不到是因为被调度算法强占CPU了嘛?得到是因为饥饿补偿机制么?
求高手指点一些好书,我想更进一步的了解这方面的知识。谢谢!
参与者都有分,重点奖励推荐好书的朋友。
个人读了不下10编了,虽然对其机制有了点了解,但有些具体的多线程现象还是解释不通。
比如为什么通过延长进程的时间配额后,原本得不到运行的后台就可以得到运行呢?
得不到是因为被调度算法强占CPU了嘛?得到是因为饥饿补偿机制么?
求高手指点一些好书,我想更进一步的了解这方面的知识。谢谢!
参与者都有分,重点奖励推荐好书的朋友。
解决方案 »
- 能否编程实现,对某个文件的监视?
- VC6.0工具的问题
- 请大家帮忙,屏蔽掉系统CStatusBar里的提示
- 如何Hook Windows格式化磁盘对话框的“开始”按钮单击事件
- 请问如何设计类似VS2005的界面,View控件位置是一个属性页控件,里面有属性单,而且标签上有关闭按钮,还可左右移动,请问是如何实现的?
- 还是我,关于MapX开发
- 一条创建表的sql语句
- 今天有点小发烧,破分免灾,下午3:30结贴
- 很简单的问题哦
- 请教一个关于编辑框的问题!!!有关回车的问题
- 一单文档程序,在View中动态new了一个窗口(CWnd),如何能使这个Wnd窗口半透明???????????????
- 如何给DLL中的vector<HWND>添加元素
一般需要在整个process结束(即本主线程结束)前留出一段足够的时间好让各子进程完成自
己的工作,好像一般用Sleep(多少微秒),因为主线程与子线程是并发执行的,当创建子线程后(只要不挂起)且主线程还没退出就会运行它。
《WINDOWS核心编程》这本书里面对进程线程都讲得很仔细。
你的留出一段时间的方法是不保险的,你怎么知道要留多少啊?另外,Sleep连毫秒都不能保证,更不用说微秒了。
要等待子线程结束可以用WaitforSingleObject(ThreadHandle);
话说除了MSDN之外的第一参考书
Jim Beveridge《WIN32多线程编程》(侯捷翻译的)
Jeffrey Richter《WINDOWS核心编程》,第四版
Jim Beveridge《WIN32多线程编程》(侯捷翻译的)还有介绍windows操作系统的书,可以在dearbook上搜索到。