自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 c++11实现同步、异步线程池

关于worker函数和manager函数的实现,代码注释已经解释的很清楚了,我就不多说了,最后测试的时候发现,管理者线程销毁线程的时候,结果并非预期。F是一个可调用对象,Args是可变参数,addTask的参数是万能引用,返回值是->指向的东西,也就是一个future对象,future内部类型是我们用result_of推导出来的结果,也就是任务函数的结果的类型,把它简化命名为returnType,然后用包装器把一个返回值为returnType,参数为Args的函数也就是任务函数包装成pkg,

2024-08-14 17:05:02 664

原创 c++ lambda表达式的注意事项

但是加上const之后,发现报错了,明明捕获的是a的副本,但是为什么还会报错呢?执行lambda表达式,发现报错,原因是:默认情况下,lambda 表达式是。这意味着你不能在 lambda 内部修改捕获的变量。当加上mutable关键字,就可以改变捕获的变量。修饰符的影响是对整个变量的,当你捕获一个。变量时,即使是副本,这个副本也具有。

2024-08-14 15:55:21 192

原创 c++并发编程(异步)

我们定义两个函数,分别为mythread,和mythread2:先看mythread就行,第一个参数是primise用来储存返回值,第二个参数是整型值再看主函数,启动了mythread,注意第二个参数promise对象不允许复制,必须是指针或者引用(),而且我们也希望把结果储存到这个对象本身而不是复制的副本中。然后我们通过get_future获得返回值,要注意的future对象也不能被复制,而且也不能用引用传值(future),一般通过move(移动语义)来传递。

2024-08-14 04:07:34 635

原创 c++左值右值,万能引用以及完美转发

引用折叠是 C++ 中处理引用类型推导的规则。

2024-08-13 18:19:52 536

原创 c++多线程编程中的虚假唤醒

以编写线程池为例,首先定义了任务队列(m_tasks),存放任务(function包装的函数指针),有多个worker线程执行worker函数,需要从任务队列取出任务,这时候就需要加锁判断任务队列是否有任务,假设任务队列添加一个任务我们使用notify_all唤醒阻塞的子线程时,这时候所有子线程都解除阻塞,如果一个子线程取走了任务,这时候任务队列如果没有任务的情况下,其他的子线程依然尝试从任务队列取任务,就是虚假唤醒(任务队列无任务,子线程仍然被唤醒去取任务)。

2024-08-12 18:57:30 150

原创 解决 C++ 项目中 Protobuf 库链接问题的方案

只需要把下面的注释掉,替换为这三行就可以。

2024-07-25 21:25:04 257

原创 在Clion上配置Linux开发环境

5.最后一步,右键项目,然后点击部署,然后点击上传到刚才的远程主机,就可以把本地代码同步到远程Linux系统。因为用的环境都是远程Linux的,所以要确保连接的Linux有这些必要的工具:cmake等,没有的话下载一下就行。3.第三步,配置cmake,因为默认的是本地debug,我们需要远程调试,所以需要添加个新的,这里我其名为remote_debug。然后把工具链选择刚刚配置的远程主机。4.第四步,点击部署,这里的根路径就是浏览远程Linux的根目录,配置完成后可以点击测试连接。

2024-07-25 18:12:44 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除