10.13了解程序运行方式的必要性

      在多线程处理中,用汇编语言记述的代码每运行1行,处理都有可能切换到其他线程(函数)中。因而,设 MyFuncl 函数在读出counter 的数值 100 后,还未来得及将它的2倍值 200写人 counter时,正巧 MyFunc2 函数读出了 counter的数值 100,那么结果就会导致 counter 的数值变成了 200(图 10-8 )。

 

       为了避免该 bug,我们可以采用以函数或C语言源代码的行为单位来禁止线程切换的锁定方法。



posted @ 2023-02-14 21:40  原魏薯片  阅读(12)  评论(0编辑  收藏  举报