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