base:基础设施代码,该目录下的代码对理解chrome的基础架构设计是必不可少的,这里面是大量的工具性、框架性代码实现,比如对进程、线程、消息循环的统一封装,对字符串处理、c++对象生命周期管理、json解析、路径服务、日期时间、日志框架等。
basictypes.h是base目录里最基础的文件,定义了int8、int16、int32等一系列基本数据类型和常用的宏。
base_export.h定义了跨平台静态库、动态库的导出宏。
atomicops.h跨平台原子操作接口(关于原子操作,内存屏障,可以看这两篇文章《原子操作》、《内存屏障 - MemoryBarrier》),包含平台文件
atomicops_internals_tsan.h
atomicops_internals_x86_msvc.h
atomicops_internals_mac.h
atomicops_internals_gcc.h
atomicops_internals_arm_gcc.h
atomicops_internals_x86_gcc.h
atomicops_internals_mips_gcc.h
这里主要分析atomicops_internals_x86_msvc.h,atomicops_internals_x86_gcc.h俩个文件。