hi man

博客园 首页 新随笔 联系 订阅 管理

06 2011 档案

摘要:下面我就用Lock, Unlock分别代替EnterCriticalSection(),LeaveCriticalSection()吧. 这样说起来方便.// 线程1threadfunc1(){ Lock(); // 代码1 Unlock();}// 线程2threadfunc2(){ Lock(); // 代码2 Unlock();}当 线程1 执行了 代码1 时,先Lock(); 这时如果 线程2 被唤醒, 遇到Lock()的时候会根据CRITICAL_SECTIONcs 来是否可以使用 代码2。因 cs 已经被 线程1 所占领。所以第二个线程的Lock()语句将不会返回,而是处于挂起状态 阅读全文
posted @ 2011-06-16 23:07 KuPig 阅读(250) 评论(0) 推荐(0)

摘要:今天下班回来,在CBLOG闲逛。看到一道关于指针的面试题,刚开始看着有点绕。如下:#include <stdio.h> struct S { int i; int *p;}; int main() { S s; int *p = &s.i; p[0] = 4; p[1] = 3; s.p = p; s.p[1] = 1; s.p[0] = 2; return 0;}出错的原因是,对未作声明的地址赋值程序会崩溃。平时在工作中估计没有人会这样用的,可能就是考基本功吧。总结: 1> int * p = (int *)3; //... 阅读全文
posted @ 2011-06-01 00:49 KuPig 阅读(274) 评论(0) 推荐(1)