執行緒的處理 2

2021-03-31 08:56:30 字數 831 閱讀 1371

無論如何,要提高對使用者的響應速度並且處理所需資料以便幾乎同時完成工作,使用多個執行緒是一種最為強大的技術。在具有乙個處理器的計算機上,多個執行緒可以通過利用使用者事件之間很小的時間段在後台處理資料來達到這種效果。例如,在另乙個執行緒正在重新計算同一應用程式中的電子**的其他部分時,使用者可以編輯該電子**。

無需修改,同乙個應用程式在具有多個處理器的計算機上執行時將極大地滿足使用者的需要。單個應用程式域可以使用多個執行緒來完成以下任務:

建議您使用盡可能少的執行緒,這樣可以最大限度地減少作業系統資源的使用,並可提高效能。執行緒處理還具有在設計應用程式時要考慮的資源要求和潛在衝突。這些資源要求如下所述:

跟蹤大量的執行緒將占用大量的處理器時間。如果執行緒過多,則其中大多數執行緒都不會產生明顯的進度。如果大多數當前執行緒處於乙個程序中,則其他程序中的執行緒的排程頻率就會很低。

使用許多執行緒控制**執行非常複雜,並可能產生許多錯誤。

銷毀執行緒需要了解可能發生的問題並對那些問題進行處理。

提供對資源的共享訪問會造成衝突。為了避免衝突,必須對共享資源進行同步或控制對共享資源的訪問。如果在相同或不同的應用程式域中未能正確地使訪問同步,則會導致出現一些問題,這些問題包括死鎖和爭用條件等,其中死鎖是指兩個執行緒都停止響應,並且都在等待對方完成;爭用條件是指由於意外地出現對兩個事件的執行時間的臨界依賴性而發生反常的結果。系統提供了可用於協調多個執行緒之間的資源共享的同步物件。減少執行緒的數目使同步資源更為容易。

需要同步的資源包括:

一般情況下,要為不會阻塞其他執行緒的相對較短的任務處理多個執行緒並且不需要對這些任務執行任何特定排程時,使用

threadpool

類是一種最簡單的方式。但是,有多個理由建立您自己的執行緒:

WPF 多執行緒處理 2

wpf ui 設計需要自動適應窗體大小,那麼grid是非常好的布局控制項。首先看看這個控制項的布局 這個grid是3列5行的布局,grid裡面可以包含任何子元素,因此是所有布局的首選,還有一些其他的空間如dockpanel,canvas,stackpanel,warppanel也是非常好的布局控制項...

執行緒的異常處理

如下 public class exceptionthread catch runtimeexception e class threadexception implements runnable 執行結果 模擬五個執行緒,每個執行緒均丟擲異常。在主線程中進行異常捕獲。但是根據結果看來異常並未 獲,...

執行緒安全 2 多執行緒逸出分析和正確處理

多執行緒溢位寫法 public class thisescape 點評 加粗的這一段隱式this事件執行緒已經暴露給thisescape建構函式,而建構函式在該類中首先被其他類呼叫,因此整個this都暴露了。只要其他執行緒在thisescape未構造之前 構造返回狀態 呼叫這個類,那麼this就會被...