06-執行緒
阿新 • • 發佈:2019-01-02
執行緒
程式碼在iPhone 上的執行,原始碼通過編譯器轉換為CPU的命令列。
如下的一個方法就是:
程式啟動之後,將程式中的CPU命令列配置到CPU記憶體中去,CPU從應用中指定的地址開始,一個個的執行CPU的指令命令列。
在OC 中的流控制語句,if else 等,執行命令列的地址會遠離當前的位置,位置遷移。
一個CPU 一次只能執行一個命令,不能執行到某處進行分開為兩個並列的命令。
執行緒:一個CPU 執行的CPU命令列為一條無分叉的路徑,即為執行緒。
最新的Iphone 一個CPU 晶片,有6個CPU。
-> 0x109d2a4e4 <+1189>: testl %eax, %eax 0x109d2a4e6 <+1191>: je 0x109d2a82c ; <+2029> 0x109d2a4ec <+1197>: cmpl $0x70000, %eax ; imm = 0x70000 0x109d2a4f1 <+1202>: jb 0x109d2a7d1 ; <+1938> 0x109d2a4f7 <+1208>: movq 0x125c98a(%rip), %r14 ; "searchDisplayController" 0x109d2a4fe <+1215>: movq %r13, %rdi 0x109d2a501 <+1218>: movq %r14, %rsi 0x109d2a504 <+1221>: callq *0xeb1fa6(%rip) ; (void *)0x0000000106a95d80: objc_msgSend 0x109d2a50a <+1227>: movq %rax, %rdi 0x109d2a50d <+1230>: callq 0x10a8ccb2e ;