版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第13章進(jìn)程和線程一般來說,進(jìn)程(Process)就是正在計算機(jī)中執(zhí)行的程序。而線程(Thread)是進(jìn)程中的某個單一順序的控制流。線程是進(jìn)程的細(xì)化,它是進(jìn)程中的實(shí)體。本章主要講解進(jìn)程操作的一些常用方法和線程的操作等。13.1進(jìn)程進(jìn)程從狹義角度說是程序的執(zhí)行過程。使用NSProcessInfo方法可以獲取將前的進(jìn)程信息,例如,當(dāng)前機(jī)器的名稱,操作系統(tǒng)類型等。本節(jié)主要講解有關(guān)進(jìn)程的基本操作。13.1.1創(chuàng)建進(jìn)程我們在使用進(jìn)程之前必須要將進(jìn)程的頭文件引入。13.1.1創(chuàng)建進(jìn)程13.1.2進(jìn)程的使用當(dāng)我們創(chuàng)建好進(jìn)程以后,就要對進(jìn)程執(zhí)行操作。接下來主要講解對進(jìn)行的操作等相關(guān)方面的內(nèi)容。1.放回進(jìn)程號當(dāng)我們要查看操作系統(tǒng)分配給一個進(jìn)程的進(jìn)程號時,可以采用processIdentifier()方法。2.返回進(jìn)程的名稱processName()方法用來返回進(jìn)程的名稱。3.返回主機(jī)的名稱hostName()方法使用來返回主機(jī)的名稱。4.操作系統(tǒng)版本信息當(dāng)我們要對操作系通過的版本需要了解時,可以使用operatingSystemVersionString()方法查看版本信息。13.1.3進(jìn)程方法總結(jié)我們對進(jìn)程的一些基本操作做了詳細(xì)的介紹。展現(xiàn)在我們將進(jìn)程的操作方法做一個簡單的總結(jié)。方法說明+(NSProcessInfo*)processInfo返回當(dāng)前的進(jìn)程信息-(NSArray*)arguments返回程序執(zhí)行的參數(shù)-(NSDictionary*)processName返回進(jìn)程名稱-(int)processIdentifier返回進(jìn)程號-(NSString*)globallyUniqueString讓系統(tǒng)生成一個唯一的字符串。之歌值保證是不重復(fù)的-(NSString*)hostName返回主機(jī)名-(NSUInteger)operatingSystem返回操作系統(tǒng)的信息(是一個數(shù)字,5表示Mac操作)-(NSString*)operatingSystemName返回操作系統(tǒng)名稱-(NSString*)operatingSystemVersionString返回操作系統(tǒng)的版本信息-(NSDictionary*)environment返回當(dāng)前環(huán)境變量和它的值13.2線程線程是進(jìn)程的細(xì)化。每一個程序至少要有一個線程,這個線程稱為主線程。你可以將線程想象成為指令按順序執(zhí)行的應(yīng)用的一行代碼的執(zhí)行。本節(jié)主要講解有關(guān)線程的創(chuàng)建、啟動、訪問等相關(guān)的知識。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.同時運(yùn)行多個線程有的時候線程不是只有一個在運(yùn)程,而是有多個線程同時在運(yùn)行。13.2.3訪問主線程當(dāng)我們要訪問主線程是可以通過performSelectorOnMainThread()方法來實(shí)現(xiàn)。13.3互斥鎖互斥鎖也叫互斥體。它的作用是可以防止同時訪問同一內(nèi)存。之所以叫互斥鎖是因?yàn)樗鼤i住對內(nèi)存的訪問,并使得在某一時刻可以獨(dú)占訪問一個線程。Objective-C提供了一種簡單的互斥鎖NSLock和使用@synchronize關(guān)鍵字。13.3.1NSLock要使用NSLock互斥鎖,就要先將鎖的頭文件進(jìn)入。1.互斥鎖的創(chuàng)建要使用互斥鎖,引入互斥鎖的頭文件是不夠的,還需要我們創(chuàng)建一個互斥鎖。2.互斥鎖的調(diào)用當(dāng)我們創(chuàng)建好互斥鎖以后,要對它進(jìn)行使用,這時我們就要對互斥鎖進(jìn)行調(diào)用。3.關(guān)閉互斥鎖當(dāng)我們在所用完互斥鎖以后,就要將它關(guān)閉。關(guān)閉互斥鎖的形式如圖13.21所示。13.3.2@synchronize我們在使用NSLock的時候,如果忘記將程序中的NSLock解鎖就很容易造成死鎖。為了避免這種麻煩,Objective-C提供了@synchronize。它是一種內(nèi)置的語言指令。該指定提供了包括特定作用域和變量參數(shù)的內(nèi)置的底層互斥機(jī)制。也就是說它可以為一個變量指定上鎖。13.3.2@synchronize13.4進(jìn)程和線程的區(qū)別進(jìn)程是應(yīng)用程序的運(yùn)行實(shí)例,自己享有獨(dú)立的地址空間。對于多任務(wù)操作系統(tǒng),能夠“同時”運(yùn)行多個進(jìn)程。但這些是CPU的分時機(jī)制在起作用,能夠使每個進(jìn)程都能循環(huán)獲得自己的CPU時間片。進(jìn)程(process)本質(zhì)上是操作系統(tǒng)當(dāng)前運(yùn)行的執(zhí)行程序。13.4進(jìn)程和線程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版化工危險品倉庫租賃及消防設(shè)施配備協(xié)議3篇
- 2024校車司機(jī)服務(wù)滿意度調(diào)查聘用合同3篇
- 專業(yè)墻面刷涂料分包合作合同一
- 二零二五年度不銹鋼欄桿設(shè)計與安裝服務(wù)協(xié)議3篇
- 二零二五年特色街區(qū)攤位租賃經(jīng)營協(xié)議2篇
- 2025賓館客房租賃及酒店旅游咨詢服務(wù)合同范本3篇
- 二零二五年度智能機(jī)器人OEM研發(fā)與生產(chǎn)合作協(xié)議
- 二零二五版影視作品眾籌投資與分成合同3篇
- 2024版工程設(shè)計協(xié)議終止協(xié)議范本版B版
- 忻州職業(yè)技術(shù)學(xué)院《生物藥物臨床前評價》2023-2024學(xué)年第一學(xué)期期末試卷
- FZ/T 73042-2011針織圍巾、披肩
- 統(tǒng)編部編版三年級道德與法治下冊優(yōu)秀課件【全冊】
- 生物質(zhì)能完整資料課件
- 2023年版義務(wù)教育音樂課程標(biāo)準(zhǔn)(標(biāo)準(zhǔn)版)
- 特色服裝民族服飾項(xiàng)目大學(xué)生創(chuàng)業(yè)計劃書
- (完整版)漢密爾頓焦慮量表(HAMA)
- 大型集團(tuán)公司商學(xué)院培訓(xùn)體系建設(shè)方案
- 職工退休提取住房公積金申表版
- 電力電子技術(shù)全套課件
- DB13(J)∕T 8057-2019 市政排水管渠工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 高分辨率陣列感應(yīng)測井的原理及應(yīng)用
評論
0/150
提交評論