摘要:下面我就用Lock, Unlock分别代替EnterCriticalSection(),LeaveCriticalSection()吧. 这样说起来方便.// 线程1threadfunc1(){ Lock(); // 代码1 Unlock();}// 线程2threadfunc2(){ Lock(); // 代码2 Unlock();}当 线程1 执行了 代码1 时,先Lock(); 这时如果 线程2 被唤醒, 遇到Lock()的时候会根据CRITICAL_SECTIONcs 来是否可以使用 代码2。因 cs 已经被 线程1 所占领。所以第二个线程的Lock()语句将不会返回,而是处于挂起状态
阅读全文
06 2011 档案
摘要:今天下班回来,在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; //...
阅读全文
浙公网安备 33010602011771号