突破objective-開發(fā)速學手冊隨書第13章進程和線程_第1頁
突破objective-開發(fā)速學手冊隨書第13章進程和線程_第2頁
突破objective-開發(fā)速學手冊隨書第13章進程和線程_第3頁
突破objective-開發(fā)速學手冊隨書第13章進程和線程_第4頁
突破objective-開發(fā)速學手冊隨書第13章進程和線程_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第13章進程和線程一般來說,進程(Process)就是正在計算機中執(zhí)行的程序。而線程(Thread)是進程中的某個單一順序的控制流。線程是進程的細化,它是進程中的實體。本章主要講解進程操作的一些常用方法和線程的操作等。13.1進程進程從狹義角度說是程序的執(zhí)行過程。使用NSProcessInfo方法可以獲取將前的進程信息,例如,當前機器的名稱,操作系統(tǒng)類型等。本節(jié)主要講解有關進程的基本操作。13.1.1創(chuàng)建進程我們在使用進程之前必須要將進程的頭文件引入。13.1.1創(chuàng)建進程13.1.2進程的使用當我們創(chuàng)建好進程以后,就要對進程執(zhí)行操作。接下來主要講解對進行的操作等相關方面的內容。1.放回進程號當我們要查看操作系統(tǒng)分配給一個進程的進程號時,可以采用processIdentifier()方法。2.返回進程的名稱processName()方法用來返回進程的名稱。3.返回主機的名稱hostName()方法使用來返回主機的名稱。4.操作系統(tǒng)版本信息當我們要對操作系通過的版本需要了解時,可以使用operatingSystemVersionString()方法查看版本信息。13.1.3進程方法總結我們對進程的一些基本操作做了詳細的介紹。展現(xiàn)在我們將進程的操作方法做一個簡單的總結。方法說明+(NSProcessInfo*)processInfo返回當前的進程信息-(NSArray*)arguments返回程序執(zhí)行的參數(shù)-(NSDictionary*)processName返回進程名稱-(int)processIdentifier返回進程號-(NSString*)globallyUniqueString讓系統(tǒng)生成一個唯一的字符串。之歌值保證是不重復的-(NSString*)hostName返回主機名-(NSUInteger)operatingSystem返回操作系統(tǒng)的信息(是一個數(shù)字,5表示Mac操作)-(NSString*)operatingSystemName返回操作系統(tǒng)名稱-(NSString*)operatingSystemVersionString返回操作系統(tǒng)的版本信息-(NSDictionary*)environment返回當前環(huán)境變量和它的值13.2線程線程是進程的細化。每一個程序至少要有一個線程,這個線程稱為主線程。你可以將線程想象成為指令按順序執(zhí)行的應用的一行代碼的執(zhí)行。本節(jié)主要講解有關線程的創(chuàng)建、啟動、訪問等相關的知識。13.2.1使用NSThread創(chuàng)建線程在我們使用線程之前,要將線程的頭文件引入。13.2.1使用NSThread創(chuàng)建線程13.2.1使用NSThread創(chuàng)建線程13.2.2啟動線程使用detachNewThreadSelector:toTarget:withObject()方法和新建一個線程對象并初始化在創(chuàng)建好線程以后,它們并沒有真正的啟動線程。為了啟動一個線程可以使用start()方法。1.單個線程的啟動使用start的形式。2.同時運行多個線程有的時候線程不是只有一個在運程,而是有多個線程同時在運行。13.2.3訪問主線程當我們要訪問主線程是可以通過performSelectorOnMainThread()方法來實現(xiàn)。13.3互斥鎖互斥鎖也叫互斥體。它的作用是可以防止同時訪問同一內存。之所以叫互斥鎖是因為它會鎖住對內存的訪問,并使得在某一時刻可以獨占訪問一個線程。Objective-C提供了一種簡單的互斥鎖NSLock和使用@synchronize關鍵字。13.3.1NSLock要使用NSLock互斥鎖,就要先將鎖的頭文件進入。1.互斥鎖的創(chuàng)建要使用互斥鎖,引入互斥鎖的頭文件是不夠的,還需要我們創(chuàng)建一個互斥鎖。2.互斥鎖的調用當我們創(chuàng)建好互斥鎖以后,要對它進行使用,這時我們就要對互斥鎖進行調用。3.關閉互斥鎖當我們在所用完互斥鎖以后,就要將它關閉。關閉互斥鎖的形式如圖13.21所示。13.3.2@synchronize我們在使用NSLock的時候,如果忘記將程序中的NSLock解鎖就很容易造成死鎖。為了避免這種麻煩,Objective-C提供了@synchronize。它是一種內置的語言指令。該指定提供了包括特定作用域和變量參數(shù)的內置的底層互斥機制。也就是說它可以為一個變量指定上鎖。13.3.2@synchronize13.4進程和線程的區(qū)別進程是應用程序的運行實例,自己享有獨立的地址空間。對于多任務操作系統(tǒng),能夠“同時”運行多個進程。但這些是CPU的分時機制在起作用,能夠使每個進程都能循環(huán)獲得自己的CPU時間片。進程(process)本質上是操作系統(tǒng)當前運行的執(zhí)行程序。13.4進程和線程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論