曾格的github
摘要: 虚假唤醒: 当 wait() 不带有第二个判断条件参数时会发生虚假唤醒的情况,所以wait()中尽量要带有第二个参数,并且这个lambda表达式要正确判断处理的公共数据是否存在。条件变量很重要,以后会经常用到。 atomic: std::atomic<int> atm = 0; cout << at 阅读全文
posted @ 2021-09-17 21:27 曾格 阅读(41) 评论(0) 推荐(0) 编辑
摘要: windows临界区 属于C++语法,可以跨平台。 Windows临界区,同一个线程是可以重复进入的,但是进入的次数与离开的次数必须相等。 C++互斥量则不允许同一个线程重复加锁。 RAII类:(Resource Acquisition is initialization)资源获取及初始化:构造函数 阅读全文
posted @ 2021-09-17 20:18 曾格 阅读(71) 评论(0) 推荐(0) 编辑
摘要: std::async深入理解,async 用来创建一个异步任务: std::async()我们一般不叫创建线程(他能够创建线程),我们一般叫它创建一个异步任务。 std::async和std::thread最明显的不同,就是 async 有时候并不创建新线程。 如果用std::launch::def 阅读全文
posted @ 2021-09-17 19:18 曾格 阅读(2170) 评论(0) 推荐(1) 编辑
摘要: std::atomic原子操作: 互斥量:多线程编程中 用于保护共享数据:先锁住, 操作共享数据, 解锁。 有两个线程,对一个变量进行操作,一个线程读这个变量的值,一个线程往这个变量中写值。 即使是一个简单变量的读取和写入操作,如果不加锁,也有可能会导致读写值混乱。 一条C++语句 i++ 会被拆成 阅读全文
posted @ 2021-09-17 18:58 曾格 阅读(197) 评论(0) 推荐(0) 编辑
摘要: std::async、std::future创建后台任务并返回值 std::async是一个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,它返回一个std::future对象,这个对象是个类模板。 异步任务:就是自动创建一个线程,并开始 执行对应的线程入口函数,它返回一个std::fut 阅读全文
posted @ 2021-09-17 17:59 曾格 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 条件变量condition_variable 类成员函数有:wait、notify_one、notify_all 条件变量的优点:比如我们要达到一个条件,就加锁执行后续代码,但如果要一直检测,就需要一直加锁,那就会浪费锁资源,即使用双重锁,还是要不断地做判断。而用了条件变量,只需要一次判断,如果不满 阅读全文
posted @ 2021-09-17 17:12 曾格 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 输入一个字符串,转换为特定的格式,如:2019, 12, 31, 23, 59, 59, 1表示在2019-12-31 23:59:59的1s后时间,即:2020-01-01 00:00:00 咋一看很简单,但还是发现自己的代码基础还需要很大提升,我至少写了2个半小时,最大的收获感觉就是不管遇到简单 阅读全文
posted @ 2021-09-17 00:19 曾格 阅读(27) 评论(0) 推荐(0) 编辑
Live2D