![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
zhongjiezheng
这个作者很懒,什么都没留下…
展开
-
用c++11的bind,function,boost::condition_variable实现的一个线程安全的任务队列
用bind将需要执行的任务包装成function<void()> 放入队列std::queue<function<void()>> 中。 然后在队列中取出调用执行。当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程。消费者wait 直到生产者通知其状态发生改变,Condition_variable是使用方法如下:·当持有锁之后,线程调用wait·wait原创 2015-03-17 14:31:36 · 729 阅读 · 0 评论 -
C++11 中一个很有趣的东西,Lambda表达式,称可调用对象,也叫函数对象。
最近在工作中接触到一些C++11的东西,感觉挺有趣的。都没有写博客的习惯,打算以后学点东西记一记。ok,先来讲讲有趣的函数对象Lamdba。在C++primer 第5版里,是这样引出lambda的。 有一个已经按长度排序好的vector《string》 如: fox red the over slow jumps quick turtle 问题是,在这个vector中寻找原创 2015-03-11 22:47:55 · 610 阅读 · 0 评论 -
C++11中bind的用法
bind可以将函数绑定成另一个可调用的函数对象,可以改变原来函数的传参方式。所以可以把bind看成一个函数的适配器。#include <functional>#include <iostream>#include <string>using namespace std;int sum(int a, int b, int c){ return a + b + c;}class A原创 2015-03-13 00:16:47 · 505 阅读 · 0 评论 -
Boost.Asio 异步执行方法,post()\dispach()\wrap().
Asio中的异步操作不仅包括 异步的客户端服务端的连接和异步的数据读写,还包括很多可以异步执行的操作。 Asio中有三种方式异步执行你指定的方法:post()、dispach()、wrap()。post()这个方法能立即返回,并且请求一个io_service实例调用制定的函数操作(function handler),之后会在某一个盗用io_service.run()的线程中执行。dispach原创 2015-03-23 22:30:31 · 13009 阅读 · 1 评论 -
c++11中lambda
在C++中可以对从在括号运算符。下面是一个重载括号运算符的类。class Abs{public: int operator()(int val) const { return val < 0 ? -val : val; }};这是一个求绝对值的运算符重载。int i = -1;Abs obj;int ui = obj(i);std::cout <原创 2015-03-11 23:33:39 · 279 阅读 · 0 评论 -
C++ post方式请求网页
C++post方式向页面发送数据,用于记录程序中的一些操作。原创 2015-04-30 20:12:46 · 1797 阅读 · 0 评论 -
linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库
1. 可执行程序在执行的时候如何定位共享库文件?当系统加载可执行代码的时候,能够知道其所依赖的库的名字,但是还需要知道库的绝对路径,此时就需要系统动态载入器(dynamic linker/loader)。对于elf格式的可执行程序,是由ld-linux.so*来完成的,它先后搜索elf文件的DT_RPATH段---环境变量LD_LIBRARY_PATH---/etc/ld.转载 2015-05-27 16:40:57 · 791 阅读 · 0 评论 -
Ubuntu 上安装mosquitto
安装时需要库 sudo apt-get install libssl-dev sudo apt-get install libc-ares-dev sudo apt-get install libc-ares2 sudo apt-get install uuid-dev make make install原创 2015-05-26 18:33:31 · 832 阅读 · 0 评论