進程鎖下載 多進程跟多線程對表的讀寫訪問需要加鎖嗎?
多進程跟多線程對表的讀寫訪問需要加鎖嗎?鎖定和解鎖(同步/互斥)是多線程中非常基本的操作,但我發(fā)現(xiàn)許多代碼不能很好地處理它們。簡單地說,有三種類型的問題。一是鎖定范圍過大。雖然避免了邏輯錯誤,但是鎖定
多進程跟多線程對表的讀寫訪問需要加鎖嗎?
鎖定和解鎖(同步/互斥)是多線程中非?;镜牟僮鳎野l(fā)現(xiàn)許多代碼不能很好地處理它們。簡單地說,有三種類型的問題。一是鎖定范圍過大。雖然避免了邏輯錯誤,但是鎖定不應(yīng)該被鎖定的東西將不可避免地降低程序的效率,這與單線程的效率是一樣的。二是鎖不鎖,導(dǎo)致各種莫名其妙的錯誤。三是鎖定方法不合適,關(guān)鍵區(qū)域應(yīng)該使用的內(nèi)核對象也會降低程序的效率。
要正確使用鎖定操作,首先必須確定何時需要鎖定。通常,當(dāng)多個寫操作或讀寫操作同時發(fā)生時,必須添加鎖