多線程的同步

(1)多線程的應用
多線程是爲了使得多個線程並行的工作以完成多項任務,以提高系統的效率。使用多線程帶來的好處有:
a、可以把佔據長時間的程序中的任務作爲一個單獨的線程放到後臺去處理。而用戶界面可以繼續響應用戶的操作。例如用戶單擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度等。
b、加快程序的處理速度
c、在一些等待的任務實現上如用戶輸入、文件讀寫和網絡收發數據等,可以釋放一些資源如內存佔用等。
使用多線程帶來的問題:
a、獨佔性系統資源的調度問題:
例如,對於像磁盤驅動器這樣獨佔性系統資源,由於線程可以執行進程的任何代碼段,且線程的運行是由系統調度自動完成的,具有一定的不確定性,因此就有可能出現兩個線程同時對磁盤驅動器進行操作,從而出現操作錯誤。又例如,對於基本數據庫應用的程序來說,可能使用一個線程來更新其用戶數據庫,而另一個線程用來讀取數據庫以響應用戶的需要,極有可能數據庫的線程讀取的是未完成更新的數據庫,因爲可能在讀的時候只有一部分數據被更新過。
(2)多線程的同步
概念:隸屬於同一進程的各線程協調一致的工作稱爲線程的同步。
線程同步的基本思想就是避免多個線程對同一資源的訪問,這個資源既可以是一個對象,又可以是一個方法或代碼。線程的同步可以使用臨界區、互斥量、信號量等方式實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章