新年创意插画:在VC下怎样实现原语?强调不可用MFC提供的类。

来源:百度文库 编辑:高考问答 时间:2024/04/30 00:44:52
在VC下怎样实现原语?
实现原语的本质是互斥。
MFC提供了可以定义临界区的类,但现在不可用此类。有没其他的方法实现原语?
感觉用汇编写是万不得已时采用的。
请问有什么操作系统提供的专门实现互斥的接口什么玩意的?

可以用汇编的XCHG交换指令实现,因为它是一条指令,执行过程不会被中断。
示意如下:

mov ax, 1
xchg ax, lock_flag
然后判断ax中是否是0,如果是0,表示没有别人占用,可以继续执行;否则等待一段时间,重新检查。
等临界区执行完成后,用如下方法可以释放锁:
mov ax, 0
xchg ax, lock_flag