C 程序的編寫心得

2021-04-03 02:03:10 字數 577 閱讀 3481

今天做執行緒的程式,對於lock(this)與monitor.wait(this)、monitor.pulse(this)的應用,花了我很長的時間。monitor.wait(this)與monitor.pulse(this)應當對稱的使用。當乙個執行緒用lock(this)後,當執行完後,另外的執行緒才可以呼叫該this物件,或者當有monitor.wait(this)時也行。

如果乙個執行緒判斷出無法在鎖定的物件上執行任務,那麼執行緒就會呼叫monitor類的wait方法,並將執行緒所等待、並直至得到之後才能執行任務的物件作為引數。從執行緒中呼叫monitor.wait方法可以釋放執行緒在物件上的鎖,wait方法會將這個鎖作為引數,並將執行緒置於waitsleepjoin狀態。當某個執行緒以訪問物件為引數呼叫了monitor類的pulse方法或pulseall方法時,該訪問物件並處於waitsleepjoin的執行緒就會離開waitsleepjoin狀態。pulse方法可以將物件的第乙個等待執行緒從waitsleepjoin狀態轉換到started狀態。轉換到started狀態可以使該執行緒(或其他執行緒)能夠準備開始繼續執行。

注意:monitor.wait(this)與monitor.pulse(this)匹配使用。

winSocket編寫心得

剛開始編定 winsock api每次編寫都要呼叫wsastartup 結束都到呼叫wsacleanup c socket和c 就沒有那麼麻煩,把它封裝起來了,又發現乙個有趣的事,c 宣告類後就可以用不像c 還得new winsock api socket bind listen accent re...

檔案編寫心得

這是第一次因為作業的原因認認真真的編一整個檔案模組的 遇到了很多很多問題,比如 1.檔案一直無法開啟,開啟方式也沒有弄錯。結果發現過載的 和 後面我直接跟了乙個變數tv 100 而不是遍歷訪問。2.檔案只能輸入一次,第二次輸入的結果與第一次重疊。這個稍微有點意思,我以為是我每次輸入前的trunc有問...

案例編寫心得2

編寫案例的時候,你需要考慮到各種各樣的情況,考慮到各種場景,而各種場景,就需要對實現的業務邏輯熟悉。但是會存在一些問題 比如,當開發說這種場景明確不存在,但是是在程式控制的情況下,這種場景才不會存在,那這種場景需不需要進行驗證。比如說的s狀態,不會存在撤銷狀態的中間過程,但是,是否真的會不存在,我們...