- 博客(2)
- 收藏
- 关注
原创 c++的调用约定总结
注意: 可变参数函数:必须使用 __cdecl,,, 因为__cdecl的函数调用栈的清理是由调用者清理的,如果使用别的调用约定,被调用者压根就不知道参数。如上文所说,如果不指定函数的调用方式,默认使用默认调用方式 __cdecl,而这里的线程函数要求是**__stdcall**,__stdcall(标准调用, 参数入栈顺序是从右到左, 但是它的函数调用堆栈是由被调用者清理的。__cdecl (默认的调用方式, 参数入栈顺序是从右到左, 而且函数调用栈的清理是由调用者清理的),一. 函数参数的入栈顺序。
2025-12-20 09:24:15
280
原创 条件变量condition_variable使用及陷阱
同时,一个简单的wait函数调用内部会很复杂,有可能线程A调用了wait函数但是还没有进入到wait阻塞等待前,另一个线程b在此时却调用了notify函数,此时notify的信号就丢失了,如果加了锁,线程B必须等待线程A释放了锁并进入了等待状态后才可以调用notify,继而防止信号丢失。那怎么解决虚假唤醒的问题呢,可以在线程由阻塞状态被唤醒后继续判断附加条件,看是否满足唤醒的条件,如果满足则继续执行,如果不满足,则继续去等待,体现在代码中,即将。把当前线程添加到等待线程列表中,该线程会持续。
2025-11-24 22:10:02
682
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅