天天看點

聯調中如何模拟多線程關鍵代碼段的碰撞

前幾日一同僚問我:兩個線程都需要對一份資源進行通路操作,現在他希望能夠測試一下同步過程是否無誤,如何讓這兩個線程在各自指定代碼段碰撞。

我還真沒這方面的經驗,或者做過也忘記了,當時并沒有給出好的解決方案。下班後靜下心來,仔細想了一下,有了,VS調試環境提供了線程當機的功能,如圖:

聯調中如何模拟多線程關鍵代碼段的碰撞

借用此功能我們就可以很容易實作線程碰撞模拟了。首先,在兩個線程各自的代碼段設定斷點,然後調試模拟下運作,當一線程斷到其代碼段時,當機該線程,然後讓調試程序繼續RUN,另一線程進入斷點後,解凍當機的線程,繼續RUN。

多于兩個線程的環境同理也可以模拟。

問題很簡單,方法也很簡單,分享給大家,希望對讀者有用。

繼續閱讀