最近给自己定了个 计划 ,每天下班后 要看书 做读书笔记。
1 、线程的 组成
两部分组成 ,存储线程信息的线程内核对象,以及线程堆栈,内部维护有执行函数代码需要的所有函数参数和局部变量。
2 创建时机
每当进程被初始化时,系统就要创建一个主线程。该线程与C / C + +运行期库的启动代码一道开始运行,启动代码则调用进入点函数( m a i n、w m a i n、Wi n M a i n或w Wi n M a i n),并且继续运行直到进入点函数返回并且C / C + +运行期库的启动代码调用E x i t P r o c e s s为止
需要cpu同时处理别的任务的时候,可以创建线程
3 不该使用的时机
所有的窗口应当隶属于一个界面处理线程,并且具有较高的优先级,其它皆为工作线程。(例外:windows为每个文件夹创建了一个线程)
4主线程 进入点函数 main winmain
辅助线程类似,函数名自定,可以传入单个参数 DWORD WINAPI ThreadFunc(PVOID pvParam)
线程函数(实际上是你的所有函数)应该尽可能使用函数参数和局部变量
5 线程的创建 CreateThread函数
不要调用它,Visual C++开发环境下,应该使用Visual C++运行期库函数_ b e g i n t h r e a d e x
6 创建的几个参数,控制继承性的,制定堆栈大小的,制定执行函数目标地址的,传递的参数,创建后制定线程状态(是否可立即调度),返回的新线程的id,
7 线程的终止方式 有
线程函数返回 ,调用E x i t T h r e a d函数, 其它线程调用Te r m i n a t e T h r e a d函数, 包含线程的进程终止运行。