在多線程過程中,對于線程間的數(shù)據(jù)共享同步問題,具體針對多線程需要對一個(gè)Vector進(jìn)行讀與寫的操作,不考慮緩沖區(qū)的操作,一般情況下為了保證穩(wěn)定性的同時(shí)在讀寫的時(shí)候都要進(jìn)行加鎖,其實(shí)可以通過一個(gè)技巧,就是通過一個(gè)臨時(shí)變量在寫數(shù)據(jù)的時(shí)候把第一個(gè)值付給臨時(shí)變量,那么在讀取數(shù)據(jù)的線程中會(huì)直接讀取臨時(shí)變量,此時(shí)只需要加鎖一次即可。
我寫了一個(gè)測試?yán)樱褪顷P(guān)于開3個(gè)讀,寫,刪的操作。。。一般情況進(jìn)行加鎖,與通過通過臨時(shí)變量來減少一次加鎖速度與效率明顯低于后者。
針對1000000個(gè)數(shù)據(jù)的操作,操作1比操作2快2倍以上。
下面是我的測試代碼,簡單。。。只是為了說明問題
/Files/expter/l_thread.rar