06-线程

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               ;