1. 程式人生 > >為什麽要用多線程

為什麽要用多線程

2個 只需要 成員變量 變量 混亂 了解 pan 運算 完成

1. 先討論一下CApp類的實質。App就是一個用戶界面線程。

1.1

App對象使一個線程具有了處理消息的能力,而線程本身並沒有這個能力,(了解這一點的目的在於弄清楚線程消息的概念。)擁有這種能力的線程也就是用戶界面線程。

1.2

了解了消息機制的原理以後可以對我們編程提供一些幫助,比如,App主線程中不應該執行耗時很長的代碼(比如循環,或者I/O操作,或者運算量很大的代碼),這樣才不會阻塞消息循環,導致界面“死掉”。 解決這個問題的方案就是創建子(輔助)線程來完成這些任務

2. 這裏關於父子線程的行為控制好復雜

第2個問題:如何更好的使用多線程

首先是代碼結構的問題。我們可以將子線程所要完成的功能全部在一個線程函數裏實現,這顯然在大多數時候是不合理的,第二種方法是通過父線程傳遞來的對象指針,調用該對象類的成員函數來實現所需的功能。這裏引發新的問題,需不需要單獨創建一個類來包裝這些函數,還是將這些函數寫在父線程的類中(包括輔助線程處理函數自己)。這兩種方法從本質上來說似乎沒有什麽差別。後者的話,當我們需要改變子線程的行為時,只需要改變自身類成員變量就可以了,但是結構顯得有些混亂。

為什麽要用多線程