多線程的優缺點

何時使用多線程技術,何時避免用它,是我們需要掌握的重要課題。多線程技術是一把雙刃劍,在使用時需要充分考慮它的優缺點。
多線程處理可以同時運行多個線程。由於多線程應用程序將程序劃分成多個獨立的任務,因此可以在以下方面顯著提高性能: 
(1)多線程技術使程序的響應速度更快 ,因爲用戶界面可以在進行其它工作的同時一直處於活動狀態;

(2)當前沒有進行處理的任務時可以將處理器時間讓給其它任務;

(3)佔用大量處理時間的任務可以定期將處理器時間讓給其它任務;

(4)可以隨時停止任務;

(5)可以分別設置各個任務的優先級以優化性能。

 是否需要創建多個線程取決於各種因素。在以下情況下,最適合採用多線程處理: 
(1)耗時或大量佔用處理器的任務阻塞用戶界面操作;

(2)各個任務必須等待外部資源 (如遠程文件或 Internet連接)。


同樣的 ,多線程也存在許多缺點 ,在考慮多線程時需要進行充分的考慮。多線程的主要缺點包括: 
(1)等候使用共享資源時造成程序的運行速度變慢。這些共享資源主要是獨佔性的資源 ,如打印機等。

(2)對線程進行管理要求額外的 CPU開銷。線程的使用會給系統帶來上下文切換的額外負擔。當這種負擔超過一定程度時,多線程的特點主要表現在其缺點上,比如用獨立的線程來更新數組內每個元素。

(3)線程的死鎖。即較長時間的等待或資源競爭以及死鎖等多線程症狀。

(4)對公有變量的同時讀或寫。當多個線程需要對公有變量進行寫操作時,後一個線程往往會修改掉前一個線程存放的數據,從而使前一個線程的參數被修 改;另外 ,當公用變量的讀寫操作是非原子性時,在不同的機器上,中斷時間的不確定性,會導致數據在一個線程內的操作產生錯誤,從而產生莫名其妙的錯誤,而這種錯誤 是程序員無法預知的。 

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