线程吧

 

主线程退了 程序就退了

进程内资源对象  大部分是属于进程的 线程只有窗口和钩子是 属于线程的  线程结束了 这2个会给自动卸载

Threadid =  GetExitThreadid()

线程ID = GetWindowThreadProcessId(findwindow(“计算机”,进程ID);

同步问题   核心编程上分为2种

一种就是用户模式的  就是进程内同步 不涉及到内核对象

一种是内核对象同步 既然是内核了 全系统拥有 

1事件对象   有信号(signed)==没有被使用  无信号(unsigned) ==被使用  

2互斥对象 

3 计时器对象 // 感觉有点像时钟啊 只不过他能对一堆 处于(被waitforsignedObject导致)等待的线程,如果设置了回调函数 APC回调 不像SETTIMER 只能一个线程搞

4 信号量对象// 计数?

5 线程对象  线程运行为无信号状态  线程结束为没有被使用状态  不能修改状态了

waitforsignedObject()等函数判断对象 在什么状态  

EnterCriticalSection ()    

这2个都堵塞 正常的流程 如果得不到返回 就一直等待   waitforsignedObject() 是放弃时间片  EnterCriticalSection ()  是不停的询问 旋转

waitforsignedObject( ) 一是句柄为无信号状态 OR 无效   二是等待时间到了 就返回了

EnterCriticalSection ()  相当于弄了个全局标志位 进去TRUE  出来FALSE

 

忘了 同步问题的根源是 就是多线程下 和多进程情况下 操作同一个资源的问题

当你写代码的时候想想这个资源是否有可能其他线程或进程操作  如果有 就可能产生同步问题 

posted on 2011-08-04 22:57  我要穿越  阅读(185)  评论(0编辑  收藏  举报

导航