06-线程
线程
代码在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 ;