Clang线程安全分析 Thread Safety Analysis

1 背景

Clang线程安全分析 Thread Safety Analysis (TSA) 是 C++ 语言扩展,集成在 Clang 中的编译期静态线程安全分析工具,用于警告代码中潜在的竞争条件。 其核心思想是:通过在代码中添加属性注解(如 GUARDED_BYREQUIRES),让编译器在编译阶段检测潜在的竞态条件(race condition),无需运行程序,零运行时开销。

Mineru

用MinerU将PDF转成epub

看到一本电子书是扫描版的PDF格式,文件很大而且阅读起来不方便。所以尝试用MinerU将PDF转换成epub。整体流程如下:

  1. 将PDF转换成Markdown格式
  2. 将Markdown转换成epub

MinerU

MinerU是一个处理PDF的工具 地址github 。MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。

Maven

Maven

Maven安装直接参考 https://developer.aliyun.com/article/1078699

Maven介绍

用命令创建一个新Maven项目

mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
  • DgroupId=com.example:项目的组织标识符(通常是公司或组织的域名倒序)
  • DartifactId=my-app:项目名称(即生成的项目文件夹名称)
  • DarchetypeArtifactId=maven-archetype-quickstart:使用 Maven 提供的基础项目模板
  • DinteractiveMode=false:非交互模式,自动创建项目。

生成目录结构:

C语言编译基础

C语言编译基础

GCC(GNU Compiler Collection)在编译 C 程序时,实际上是一个“编译驱动器”,它协调多个独立的工具完成从源代码到可执行文件的全过程。 虽然我们通常用一条命令如 gcc hello.c -o hello 就完成了编译,但实际上背后经历了四个主要阶段:预处理(Preprocessing)→ 编译(Compilation)→ 汇编(Assembly)→ 链接(Linking)