在 C++ 中,条件变量和信号量对比

在 C++ 中,信号量(Semaphore) 提供了一种基于“计数器”的同步机制。

需要注意的是,标准的信号量 std::counting_semaphorestd::binary_semaphore 是在 C++20 才正式引入的。如果你严格限制在 C++11 环境,通常需要自己封装 POSIX 信号量(sem_t)或 Windows 信号量,或者使用 Boost 库。

阅读全文

Java中的布尔类型

Java 中的 boolean 与数值类型(int 等)是不同的原始类型,语言层面既不允许隐式转换,也不允许显式强制转换。

  • 不允许的示例
    • int i = true;boolean b = 1;b = (boolean) 1; 都会编译报错
    • if (1) {} 在 Java 中非法(不同于 C/C++),只能 if (b)if (表达式为 boolean)

阅读全文

3D图形学中的平面方程:从线性代数到Vector4f表示

在3D图形学编程中,平面的数学表示是一个基础且重要的概念。无论是进行碰撞检测、视锥体裁剪,还是实现复杂的渲染算法,理解平面方程的数学原理都至关重要。本文将深入探讨3D空间中平面的各种表示方法,特别是点法式方程和Vector4f表示法,以及法向量朝向的重要性。

阅读全文