摘要: ``` class TaskQueue { public: TaskQueue() = default; virtual ~TaskQueue() = default; virtual void enqueue(std::function fn) = 0; virtual void shutdown 阅读全文
posted @ 2023-09-08 13:41 BuzzWeek 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ``` @echo off setlocal enabledelayedexpansion REM do something set start_time=%time% timeout /t 3 set end_time=%time% REM delta time set /a delta_hour 阅读全文
posted @ 2023-08-24 21:05 BuzzWeek 阅读(142) 评论(0) 推荐(0) 编辑
摘要: # std::condition_variable * 需要配合unique_lock使用,`wait(unique_lock&)` * notify_one()调用时,只有随机一个wait()线程会得到通知 * notify_all(),所有wait()线程会被通知并得到执行 * wait()调用 阅读全文
posted @ 2023-08-02 22:10 BuzzWeek 阅读(45) 评论(0) 推荐(0) 编辑
摘要: # std::unique_lock * 用法类似lock_guard,离开作用域后自动unlock * 定义的时候可以不需要mutex初始化,可以为空 * 可以手动调用lock(),unlock() ```cpp // unique_lock example #include // std::co 阅读全文
posted @ 2023-08-02 21:00 BuzzWeek 阅读(103) 评论(0) 推荐(0) 编辑
摘要: # shared_mutex * shared_mutex::lock()用法同mutex::lock() * shared_mutex::lock_shared()允许多线程同时进入临界区,只用用于只读场景,不然是线程不安全的 * shared_mutex::lock_shared()与share 阅读全文
posted @ 2023-08-01 22:13 BuzzWeek 阅读(199) 评论(0) 推荐(0) 编辑
摘要: # 一个mutex导致的死锁问题 单核实时可抢占的系统中,优先级不同的三个线程A/B/C, A>B>C * 当C先获得时间片开始执行,并获得锁 * A因为高优先级,被唤醒并中断C,但没有得到锁,而阻塞 * B获得执行机会,由于优先级高于C,B会一直执行,让AC系统无法取得任何进展 ```cpp st 阅读全文
posted @ 2023-08-01 13:17 BuzzWeek 阅读(19) 评论(0) 推荐(0) 编辑
摘要: ```cpp #include #include using namespace std; void once_fun(std::once_flag &&flag) { std::call_once(flag, []() { cout << "message from once fun" << en 阅读全文
posted @ 2023-07-31 20:31 BuzzWeek 阅读(6) 评论(0) 推荐(0) 编辑
摘要: # std::thread::joinable * 默认构造的thread对象 not joinable * join/detach之后 not joinable * 不能反复join/detach,会崩 * 当前线程会阻塞在join()调用处 * detach()不会阻塞当前线程,但是主进程结束后 阅读全文
posted @ 2023-07-26 21:42 BuzzWeek 阅读(152) 评论(0) 推荐(0) 编辑
摘要: # 可平凡复制类型 1. 标量类型(算术类型/枚举/指针) 2. 可平凡复制类类型 Trivially copyable class 3. 可平凡复制类型的数组 4. cv限定的可平凡复制类型(const/volatile) # Trivially copyable class可平凡复制类 > A 阅读全文
posted @ 2023-07-24 21:32 BuzzWeek 阅读(535) 评论(0) 推荐(0) 编辑
摘要: # 内存布局 1. 默认32位编译下,4字节对齐 2. 有虚函数情况下会在内存一开始多一个虚表指针 3. 普通函数不占内存空间 4. 静态成员不占内存空间 # 1. 通过cl命令输出hello.cpp中的类A的内存布局测试 ```cmd # 输出指定类型的内存布局 cl hello.cpp /d1r 阅读全文
posted @ 2023-07-24 13:32 BuzzWeek 阅读(147) 评论(0) 推荐(0) 编辑