進(jìn)程:一個正在執(zhí)行的程序的實例。當(dāng)用戶啟動應(yīng)用程序時困介,操作系統(tǒng)會將程序的代碼和數(shù)據(jù)從磁盤加載到內(nèi)存中大审,并開始執(zhí)行代碼。
通常座哩,系統(tǒng)會同時運行許多進(jìn)程(用戶啟動的程序徒扶、系統(tǒng)自動啟動的進(jìn)程、不提示用戶而運行的進(jìn)程)根穷。同一程序可能有多個實例執(zhí)行姜骡,此時系統(tǒng)會將每個實例看做不同的進(jìn)程。
進(jìn)程的地址空間(動態(tài)的):系統(tǒng)為每個進(jìn)程提供了一段可操作的內(nèi)存屿良。
PID:ProcessID圈澈,是標(biāo)識和區(qū)分進(jìn)程的ID,它是一個全局唯一的正整數(shù)尘惧,由系統(tǒng)隨機(jī)分配士败。
PPID:父進(jìn)程ID,進(jìn)程都是由父進(jìn)程衍生出來的褥伴。實際上有個PID為1的進(jìn)程由內(nèi)核創(chuàng)建的init進(jìn)程谅将,這個進(jìn)程 是沒有PPID的。
用kill 命令可以殺掉對應(yīng)PID的進(jìn)程 重慢。
進(jìn)程的生命周期
頭文件里有相關(guān)的定義
#import <sys/proc.h>
iOS中的進(jìn)程間通信的方式:
-
Port
NSMachPort : Foundation層
CFMachPort : Core Foundation層 ,使用方式
Mach Ports : mach 內(nèi)核層(線程饥臂、進(jìn)程都可使用它進(jìn)行通信)
scheme
使用open URL 打開app的時候,可以帶參數(shù)似踱。key chain
需要交互的數(shù)據(jù)存放在鑰匙串中隅熙,也可以實現(xiàn)不同的app進(jìn)行數(shù)據(jù)傳遞。剪切板
UIPasteboard