我始终认为作为开发者 MOP(Market/Money Oriented Programming)才是唯一不变的编程范式。
IO 密集型线程:IO Bound Thread
CPU 密集型线程:CPU Bound Thread
抢占:Preemption
写时复制:Copy-On-Write
volatile 关键字:
- 阻止编译器为了提到速度将一个变量缓存到寄存器而不写回内存
- 阻止编译器调整操作 volatile 变量的指令顺序
使用 barrier 指令阻止 CPU 乱序执行指令
gcc hello.c 编译过程分解:
- gcc -E hello.c -o hello.i # 预编译(宏展开、删除注释等)
- gcc -S hello.i -o hello.s # 编译 (词法语法分析优化得到汇编代码)
- gcc -c hello.s -o hello.o # 汇编 (汇编代码转化为 CPU 指令)
- ld -static cartl.o crate.o hello.o ……. # 链接 (一堆文件链接得到 a.out)