读书人

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

发布时间: 2013-01-17 10:28:54 作者: rapoo

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

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


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

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

读书人网 >C++

热点推荐