b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

windows多线程编程_并发服务器多线程_windows多线程编程c

电脑杂谈  发布时间:2017-05-28 11:01:21  来源:网络整理

windows多线程编程实现 简单(1)

内容:实现win32下的最基本多线程编程

使用函数:

实现代码:线程IMM_PCentry和Def_DeferredTaskEntry交替运行。本程序并未实现同步,只是简单的多线程操作。windows多线程编程

未定义#define SYN时打印结果如下

index为两个线程的共享内存变量。

Def_DeferredTaskEntry线程第一次结束后Count = Count + 1 = 1;

IMM_Pcentry线程开始, 执行完 index = index + 1; 线程被Def_DeferredTaskEntry抢占IMM_Pcentry上下文保存了index = 2的值;

Def_DeferredTaskEntry线程开始执行,执行到打印hello 7后,执行到index = index + 1,Def_DeferredTaskEntry线程又被IMM_Pcentry线程抢占,Def_DeferredTaskEntry线程保存线程上下文,包括index = 8;

继续执行上次线程IMM_Pcentry执行的地方,恢复上下文环境,当时保存的是index = 2的值,此时被打印出来。线程IMM_Pcentry继续正常执行。

可以发现,正是因为线程的不断切换,导致index不是每次都加一变化。windows多线程编程

为了达到index正常加1的目的,于是利用信号量来实现线程的控制。增加#define SYN宏定义

可以看到打印结果,两个线程执行顺序得到了控制。注意这里并不是通过加锁来得到想要得结果。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49701-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...