线程池相关

线程池(带有详细解释)

https://www.cnblogs.com/lzpong/p/6397997.htm

线程池100

https://blog.csdn.net/gcola007/article/details/78750220

线程池程序768

https://blog.csdn.net/yfcheng_yzc/article/details/54291817

泛化之美--C++11可变模版参数的妙用

https://www.cnblogs.com/qicosmos/p/4325949.html

条件变量

https://blog.csdn.net/fengbingchun/article/details/73695596

条件变量wait()

condition_variable::wait 方法 阻塞线程

void wait(
   unique_lock<mutex>& Lck
);
template<class Predicate>
void wait(
   unique_lock<mutex>& Lck,
   Predicate Pred
);

Lck

unique_lock<mutex> 对象。

Pred

返回 true 或 false的任何表达式

第一个方法进行阻止,直到 condition_variable 对象由调用终止到 notify_one 或 notify_all。 它也可以不合逻辑地唤醒。

第二个方法实际执行以下代码。

while(!Pred())
    wait(Lck);

 

引用限定符

引用限定符就是限制调用成员函数的对象有引用限定
&表示成员函数调用的对象需要是引用类型
&&表示成员函数调用对象需要是右值引用。

c++11新特性之future、std::async

std::future可以从异步任务中获取结果,一般与std::async配合使用,std::async用于创建异步任务,实际上就是创建一个线程执行相应任务。

https://www.cnblogs.com/taiyang-li/p/5914167.html

线程池100的部分解释:

1、queue 是队列类, front() 获取头部元素, pop() 移除头部元素;back() 获取尾部元素,push() 尾部添加元素

2、packaged_task 就是任务函数的封装类,通过 get_future 获取 future , 然后通过 future 可以获取函数的返回值(future.get());packaged_task 本身可以像函数一样调用 () ;

3、make_shared 用来构造 shared_ptr 智能指针。用法大体是 shared_ptr<int> p = make_shared<int>(4) 然后 *p == 4 。智能指针的好处就是, 自动 delete !https://blog.csdn.net/yagerfgcs/article/details/72886630

4、forward() 函数,类似于 move() 函数,后者是将参数右值化,前者是... 肿么说呢?大概意思就是:不改变最初传入的类型的引用类型(左值还是左值,右值还是右值);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值