對於同步和異步而言,是所有程序員都應該的掌握的基本內容。由於同步和異步設計的知識面比較多,這里我僅僅進行一下簡單的講解。
其根本目的在於理解同步和異步的含義以及應用。至於更詳細的信息可以上網查閱相關資料。
首先如果數據在線程間共享的話,那么就需要涉及到同步相關的內容了。例如正在寫的數據可能被另外一個線程讀到,而正在讀的數據
可能被另外一個線程寫到,這些數據是共享的數據。這時就必須進行同步存取操作,否者前后讀取的數據就有可能不一致。
再存錢為例:
有一個共享的銀行賬號110,原來里面有余額1000元,現在有兩個用戶A,B都要進行取錢
首先A查詢賬號剩余1000元,A想要取出200元,A點擊取款,系統正在處理取款事項...
緊接着在A取款的過程中B查詢同一個賬號還有1000元,B也想要取走200元。
A取完款后剩余800元,正常,而B取完款后理論上應該剩余600元,但是實際上還是剩余800元。
試問,110賬號多余的這200塊錢由誰出呢?
到這里應該明白同步的重要性了吧...如果同步搞不好,最后的200塊錢就得由你出了~~哈哈哈~
其次對於異步而言,
當應用程序在對象上調用一個需要花費很長時間來執行的方法的時候,並且不需要讓程序等待對方返回,這時就應該使用異步編程。
從效率上而言,以不變成更給力哦~~~(實現起來比較費勁~~)