摘要: g++ 是 GCC(GNU Compiler Collection)中的 C++ 编译器。 可以把 .cpp 文件编译成机器能懂的可执行文件(.exe 或无后缀的 UNIX 可执行文件)。 基本写法:g++ main.cpp -o main main.cpp:源代码文件。 -o main:输出文件名 阅读全文
posted @ 2025-04-12 21:47 五冬夜 阅读(16) 评论(0) 推荐(0)
摘要: 特性 线程 Race Condition 电路 Hazard / Race 层面 软件(操作系统 & 应用) 硬件(逻辑门 & 线路) 原因 多个线程并发访问共享资源 信号传播延迟 & 多路径 表现 随机 bug、错误数据 输出电平闪变、毛刺 可控性 可以通过加锁/同步避免 需要通过逻辑优化/延迟匹 阅读全文
posted @ 2025-04-11 09:54 五冬夜 阅读(4) 评论(0) 推荐(0)
摘要: 模式 说明 各线程独立跑 比如爬虫,每个线程爬一个网站 多线程并发写文件 要锁,控制写入顺序,不然文件变咒语 UI线程 + 后台线程 前台显示,后台跑任务 主线程调度 + 工作线程执行 类似线程池,工人排队干活 生产者-消费者 一边加任务,一边消费任务(加锁必备) 阅读全文
posted @ 2025-04-11 09:40 五冬夜 阅读(2) 评论(0) 推荐(0)
摘要: #include <iostream> #include <fstream> #include <thread> #include <mutex> #include <chrono> std::mutex file_mutex; const std::string filename = "data. 阅读全文
posted @ 2025-04-09 22:37 五冬夜 阅读(8) 评论(0) 推荐(0)
摘要: #include <iostream> #include <thread> #include <mutex> std::mutex cout_mutex; void printNumbers(int id) { for (int i = 0; i < 5; ++i) { std::lock_guar 阅读全文
posted @ 2025-04-09 22:37 五冬夜 阅读(2) 评论(0) 推荐(0)
摘要: 方法 1:右键直接粘贴 鼠标在 Git Bash 里 点右键 方法 2:Shift + Insert 阅读全文
posted @ 2025-04-08 12:41 五冬夜 阅读(30) 评论(0) 推荐(0)
摘要: 多线程的意义 有CPU密集型任务 有IO密集型操作 想并发处理多个客户端请求 多线程的本质作用: 让程序能同时做多件事(并发),提高执行效率或响应速度。 多线程 = 多个执行单位并行/伪并行工作 加锁 = 在共享数据访问时防止互相干扰 不共享 = 不加锁,快乐做自己 4核8线程 = 真正能并行执行的 阅读全文
posted @ 2025-04-08 11:00 五冬夜 阅读(3) 评论(0) 推荐(0)
摘要: 进程(Process)是一个运行着的程序实例,线程(Thread)是它里面的执行单元。 lock_guardstd::mutex 是模板类,自动加锁、自动解锁 在当前作用域里一拿到锁,出了作用域就自动释放 class定义一个“自定义类型” class Dog { public: std::strin 阅读全文
posted @ 2025-04-08 10:27 五冬夜 阅读(5) 评论(0) 推荐(0)
摘要: 什么是“管理员模式”?你真的了解它吗? 在 Windows 操作系统中,管理员模式(Administrator Mode)是一种赋予用户更高权限的运行方式,用于执行对系统具有重大影响的操作。 这包括但不限于: 安装或卸载系统级应用程序 修改系统文件或注册表项 配置防火墙、安全策略和服务 删除受保护的 阅读全文
posted @ 2025-04-06 21:42 五冬夜 阅读(11) 评论(0) 推荐(0)
摘要: 前缀自增(++v)和后缀自增(v++)对于内置类型几乎没有性能差异,但在处理自定义对象时,差别就明显了。 后缀自增 (v++) 后缀形式需要先保存对象当前的状态,然后对对象执行自增操作,最后返回保存的旧值。这通常需要调用拷贝构造函数来生成一个临时对象,尤其对于自定义对象,这个拷贝过程可能相对耗时。 阅读全文
posted @ 2025-04-06 21:00 五冬夜 阅读(11) 评论(0) 推荐(0)