会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Sparking⁵²¹ Wild Fire
心之所愿,无所不成。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
···
15
下一页
2021年9月18日
快手一面:Leetcode:最小栈
摘要: 快手一面的第三个算法题: 方法一:通过一个辅助栈实现在O(1)的时间内返回栈的最小值,但空间复杂度为O(n) 方法二:如何在O(1)的空间复杂度下找出最小值min:栈内不存储val,而是存储val-min 1 class MinStack { 2 public: 3 /** initialize y
阅读全文
posted @ 2021-09-18 18:13 曾格
阅读(61)
评论(0)
推荐(0)
2021年9月17日
十三、线程池
摘要: 虚假唤醒: 当 wait() 不带有第二个判断条件参数时会发生虚假唤醒的情况,所以wait()中尽量要带有第二个参数,并且这个lambda表达式要正确判断处理的公共数据是否存在。条件变量很重要,以后会经常用到。 atomic: std::atomic<int> atm = 0; cout << at
阅读全文
posted @ 2021-09-17 21:27 曾格
阅读(48)
评论(0)
推荐(0)
十二、windows临界区、其他各种mutex互斥量
摘要: windows临界区 属于C++语法,可以跨平台。 Windows临界区,同一个线程是可以重复进入的,但是进入的次数与离开的次数必须相等。 C++互斥量则不允许同一个线程重复加锁。 RAII类:(Resource Acquisition is initialization)资源获取及初始化:构造函数
阅读全文
posted @ 2021-09-17 20:18 曾格
阅读(93)
评论(0)
推荐(0)
十一、std::async深入
摘要: std::async深入理解,async 用来创建一个异步任务: std::async()我们一般不叫创建线程(他能够创建线程),我们一般叫它创建一个异步任务。 std::async和std::thread最明显的不同,就是 async 有时候并不创建新线程。 如果用std::launch::def
阅读全文
posted @ 2021-09-17 19:18 曾格
阅读(2226)
评论(0)
推荐(1)
十、原子操作
摘要: std::atomic原子操作: 互斥量:多线程编程中 用于保护共享数据:先锁住, 操作共享数据, 解锁。 有两个线程,对一个变量进行操作,一个线程读这个变量的值,一个线程往这个变量中写值。 即使是一个简单变量的读取和写入操作,如果不加锁,也有可能会导致读写值混乱。 一条C++语句 i++ 会被拆成
阅读全文
posted @ 2021-09-17 18:58 曾格
阅读(228)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
···
15
下一页
公告
Live2D