
C++ 学习
文章平均质量分 90
C++
小猪佩奇TONY
求知若渴,虚心若愚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 学习(2) ---- std::cout 格式化输出
C++ 通常使用cout输出数据,和printf()函数相比,cout实现格式化输出数据的方式更加多样化;一方面,cout 作为ostream类的对象,该类中提供有一些成员方法,可实现对输出数据的格式化;另一方面,为了方面用户格式化输出数据,C++ 标准库专门提供了一个 <iomanip> 头文件,该头文件中包含有大量的格式控制符,也就是流操作算子,使用上更加方便;原创 2024-08-04 12:12:02 · 3968 阅读 · 0 评论 -
C++ 多线程学习(3) ---- 条件变量
比如上面的代码中如果不加锁保护,在判断 mDisplayQueue.empty() 的条件成立后,此时线程被挂起,调度了另一个线程,另外的线程用于唤醒这个 condition_variable,此时当前线程因为还没有处于 wait 状态上(没有处于调度器的等待队列上),所以会丢失掉这个唤醒操作,如果这个唤醒操作只有一次,那么当前线程很可能永远处于阻塞等待的状态上。要解决该问题,就必须让生产者在缓冲区满时休眠,等到下次消费者消耗缓冲区中的数据的时候,生产者才能被唤醒,开始往缓冲区添加数据。原创 2023-06-30 11:58:48 · 9536 阅读 · 0 评论 -
C++ 多线程学习(1) ---- 线程的创建
计算机术语中的并发,指的是单个系统里同时执行多个独立的活动,而不是顺序一个个执行,对于单核CPU来说,某个时刻只可能处理一个任务,但是它却不是顺序执行的一个个任务,而是对CPU进行分时复用,一直在任务之间切换,每个任务完成一部分就去执行下一个任务,看起来任务在并行发生,虽然不是严格意义上执行多个任务,但是我们仍然称之为。注意传递的参数的生命周期,传递的参数 temp,会在主函数执行完毕之后被回收,假设上面的线程使用的是线程分离的模式运行,打印出的 temp 将是错误的结果。原创 2023-06-14 15:53:13 · 1424 阅读 · 0 评论 -
C++ 学习(1)---- 左值 右值和右值引用
C++11引入了右值引用,允许我们将右值绑定到引用上。这在。原创 2024-02-25 12:07:11 · 1228 阅读 · 0 评论 -
C++ 多线程学习(4) ---- 一道面试题的解法
C++ 多线程原创 2023-08-22 19:30:24 · 286 阅读 · 0 评论 -
C++ 多线程学习(2) ---- 竞争条件和互斥锁
在多线程编程中,多个线程可能同时访问和修改同一个变量,如果没有正确的同步机制,可能会导致数据竞争和不一致性等问题,原子变量提供了一种简单有效的方式来解决这个问题。2.unique_lock 可以进行临时上锁再加锁,如在构造对象之后使用 lck.unlock 就可以实现解锁,lck.lock 进行上锁,而不必等到析构的时候自动解锁,lock_guard 是不支持手动释放的。需要更加细粒度的控制,互斥锁可以提供更加细粒度的控制,允许锁定特定资源或者操作,原子变量一般用于单个变量的原子操作;原创 2023-06-28 19:49:12 · 440 阅读 · 1 评论