前几日一同事问我:两个线程都需要对一份资源进行访问操作,现在他希望能够测试一下同步过程是否无误,如何让这两个线程在各自指定代码段碰撞。
 
我还真没这方面的经验,或者做过也忘记了,当时并没有给出好的解决方案。下班后静下心来,仔细想了一下,有了,VS调试环境提供了线程冻结的功能,如图:借用此功能我们就可以很容易实现线程碰撞模拟了。首先,在两个线程各自的代码段设置断点,然后调试模拟下运行,当一线程断到其代码段时,冻结该线程,然后让调试进程继续RUN,另一线程进入断点后,解冻冻结的线程,继续RUN。
 
多于两个线程的环境同理也可以模拟。
 
问题很简单,方法也很简单,分享给大家,希望对读者有用。