多线程相关

多线程相关

volatile long m_value;

赋值
::InterlockedExchange(&m_value, val);

增加值
::InterlockedExchangeAdd(&m_value, val);

增加1
::InterlockedIncrement(&m_value);

减少1
::InterlockedDecrement(&m_value);


保证这些值都是原子的,可以通过上述来封装,或者直接使用std中封装好的std::atomic<int>


进程启动前后内存清理相关

qt提供了程序退出前,以及退出后的函数执行,可以在这些地方释放关心的程序对象

qAddPostRoutine原理

执行的逻辑、定义宏等更方便书写 qAddPostRoutine(&processBeforeExit); 就可以在最后执行该函数

析构的时候再执行atExit的时机的操作~, 喵

自己实现线程池和qt实现线程池

重复造轮子的原因是:qt实现的线程池有性能问题,如退出进程慢等,而且我们自己的threadpool可以通过设置sleeptime来降低cpu占用

msleep的用法是 qthread中自带的一个方法,和sleep的区别是?

QThread also provides static, platform independent sleep
functions: sleep(), msleep(), and usleep() allow full second,
millisecond, and microsecond resolution respectively. These
functions were made public in Qt 5.0.

todo 好奇postthreadmessage是干什么的?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值