- 博客(12)
- 资源 (13)
- 收藏
- 关注
原创 muduo : Thread-safe Singleton
使用pthread_once#include <boost/noncopyable.hpp>#include <pthread.h>template<typename T>class Singleton : private boost::noncopyable {public: static T& instance() { pthread_once(&ponce_
2016-07-28 11:57:39 933
原创 MQTT
MQTT 是什么 MQTT (formerly MQ Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based “lightweight” messaging protocol for use on top of the TCP/IP protocol. MQTT 是协议轻量级的基于T
2016-07-27 11:36:08 3844
原创 muduo : ThreadPool
https://github.com/chenshuo/muduo/blob/master/muduo/base/ThreadPool.h https://github.com/chenshuo/muduo/blob/master/muduo/base/ThreadPool.cc线程池用到了前面分析的Thread、MutexLock、Condition成员变量 private: mu
2016-07-26 16:54:50 678
原创 muduo : Condition
https://github.com/chenshuo/muduo/blob/master/muduo/base/Condition.h前面分析了互斥锁MutexLock的实现,这里分析一下条件变量Condition的实现。条件变量需要一个互斥锁来保护。成员变量 MutexLock& mutex_; pthread_cond_t pcond_;mutex_是个引用型变量,用来保护条件变量pc
2016-07-25 14:30:23 1101
原创 muduo : MutexLock
介绍 https://github.com/chenshuo/muduo/blob/master/muduo/base/Mutex.hMutexLock是对互斥锁的封装,使用时用作一个类的成员变量,保护另一个常用被互斥访问。成员变量 pthread_mutex_t mutex_; pid_t holder_; // 由哪个线程持有default构造函数: MutexLock()
2016-07-25 14:02:47 1165 2
原创 muduo : AtomicInteger
https://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/Atomic-Builtins.html http://blog.csdn.net/huntinux/article/details/51994877上面这篇文章学习了Linux下的无锁原子操作,使用的是gcc的built-in函数:// 先获取变量值再改变它type __sync_fetch_a
2016-07-24 14:33:39 878
原创 muduo : Thread
预备知识__thread (Thread-Local Storage) https://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Local.html Thread-local storage (TLS) is a mechanism by which variables are allocated such that there is o
2016-07-22 16:06:29 1873 2
翻译 Multi-thread下对int进行原子操作
原文链接这是一系列文章,作者做了详细的讨论。 http://www.alexonlinux.com/do-you-need-mutex-to-protect-int http://www.alexonlinux.com/pthread-spinlocks http://www.alexonlinux.com/multithreaded-simple-data-type-access-
2016-07-22 14:54:42 798
原创 C++ string类的简单实现(1)
成员变量: data_ : 指向一个’\0’结尾的字符串 length_: 占用空间长度(包含’\0’)实现了:默认构造函数、拷贝构造函数、拷贝赋值操作符、析构函数。 没有实现:移动拷贝构造函数、移动赋值操作符。对于拷贝赋值操作符注意: 1. 处理自赋值:先new一个副本,再delete自己 2. 返回引用#include <sys/types.h>#include <string.h>
2016-07-21 10:54:42 913
原创 muduo : StringPiece
http://www.zhihu.com/question/34499426/answer/58891014 为什么要有这个类? C++里面有string和char*,如果你用const string &s 做函数形参,可以同时兼容两种字符串。但当你传入一个很长的char * 时,会生成一个较大的string对象,开销比较大。 如果你的目的仅仅是读取字符串的值,用这个StringP
2016-07-20 16:02:05 2002
原创 boost::enable_shared_from_this
boost::enable_shared_from_this 这个类能够让一个被shared_ptr管理生命周期的类能够在自己的成员函数内部使用自己的shared_ptr。在什么场景下需要使用一个shared_ptr呢?直接使用this指针不行吗? 想象一下这样的场景:在类中发起一个异步操作,回调函数callback在被调用时要保证发起操作的对象仍然存在。那么使用this是不合适的,因为它有可能
2016-07-20 10:55:43 1192
原创 STL in one article
参考书籍:《标准模板库自修教程与参考手册 STL进行C++编程》模板参数明确说明下面的函数模板将字符数组转换为任意的容器。因为只在返回值中用了模板参数,C++规定这种情况必须在函数调用时必须明确说明模板参数类型,否则会编译出错。template <typename Container>Container make(const char s[]){ return Container(&s
2016-07-06 13:55:52 498
meandmyshadow-0.4-bin.tar
2013-10-23
tslib1.3.tar.gz
2013-10-11
Slope One Predictors for Online Rating-Based Collaborative Filtering
2013-09-06
推荐系统实践
2013-09-06
mini2440 定时器中断实验源代码
2012-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人