08 2023 档案
摘要:``` @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
阅读全文
摘要:# std::condition_variable * 需要配合unique_lock使用,`wait(unique_lock&)` * notify_one()调用时,只有随机一个wait()线程会得到通知 * notify_all(),所有wait()线程会被通知并得到执行 * wait()调用
阅读全文
摘要:# std::unique_lock * 用法类似lock_guard,离开作用域后自动unlock * 定义的时候可以不需要mutex初始化,可以为空 * 可以手动调用lock(),unlock() ```cpp // unique_lock example #include // std::co
阅读全文
摘要:# shared_mutex * shared_mutex::lock()用法同mutex::lock() * shared_mutex::lock_shared()允许多线程同时进入临界区,只用用于只读场景,不然是线程不安全的 * shared_mutex::lock_shared()与share
阅读全文
摘要:# 一个mutex导致的死锁问题 单核实时可抢占的系统中,优先级不同的三个线程A/B/C, A>B>C * 当C先获得时间片开始执行,并获得锁 * A因为高优先级,被唤醒并中断C,但没有得到锁,而阻塞 * B获得执行机会,由于优先级高于C,B会一直执行,让AC系统无法取得任何进展 ```cpp st
阅读全文