首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

多核处理器 怎么封锁所有线程

2013-01-17 
多核处理器 如何封锁所有线程?如题在一段代码的过程中封锁住所有线程 求教[解决办法]多核的机器上都可以原

多核处理器 如何封锁所有线程?
如题

在一段代码的过程中封锁住所有线程 求教
[解决办法]
多核的机器上都可以原子的交换2个地址长度的数据, 函数首地址一般都4字节对齐的, 这个完全不用挂起其他进程...


[解决办法]
内核apihook这样弄很麻烦吧,即使锁线程也解决不了问题,你的意思是不是在函数入口放跳转指令?
如果下面这种情况出现还是要蓝屏(假设暂停所有内核线程):
假设函数入口有两个3字节的指令,某个线程刚好执行了一条,被暂停了;然后你将入口指令替换了一条5字节的跳转指令;然后被暂停的线程恢复执行,继续从第4字节开始读下一条指令...然后就蓝屏死机。
这种概率肯定有.

或者线程暂停后读线程上下文,如果执行到那里了,就resume一下,再暂停...这个逻辑就复杂了

热点排行