当前位置: 首页 > news >正文

做门户网站 cms江苏省建设银行网站

做门户网站 cms,江苏省建设银行网站,简约大方自助建站模板,手机网站建设 新闻最近写了一个hiredis的连接池#xff0c;借鉴了HiRedis库封装#xff0c;加了些日志#xff0c;发现这个在ReleaseClient函数中构造shared_ptr时#xff0c;没有指定delete。修改后在项目使用过程中发现执行一段时间后总是是卡死#xff0c;使用的是boost库中的锁及其条件…最近写了一个hiredis的连接池借鉴了HiRedis库封装加了些日志发现这个在ReleaseClient函数中构造shared_ptr时没有指定delete。修改后在项目使用过程中发现执行一段时间后总是是卡死使用的是boost库中的锁及其条件变量。 而日志系统中也用到了锁添加日志调用时无序的。 连接池中用的锁用lock1表示日志系统中用的锁用lock2表示 就会出现线程1调用锁的顺序为lock1-lock2而线程2调用锁的顺序为lock2-lock1造成死锁 将日志调用去掉后没有出现卡死情况了 typedef std::shared_ptrRedisClient RedisClientPtr;class HiRedisPool { public:static HiRedisPool* getInstance(){static HiRedisPool instance;return instance;}void init(const std::string ip, int port, size_t maxCon);void getRedisClient(RedisClientPtr redisClientPtr);void releaseClient(RedisClient *client_ptr);inline size_t size(){boost::lock_guardboost::mutex lock(_mutex);return _pool.size();}inline size_t used(){boost::lock_guardboost::mutex lock(_mutex);return _used;}private:HiRedisPool();HiRedisPool(const HiRedisPool other);HiRedisPool operator(const HiRedisPool other);private:std::string _ip;int _port;size_t _used;size_t _maxConnection;std::listRedisClientPtr _pool;boost::mutex _mutex;boost::condition_variable _cv; };HiRedisPool::HiRedisPool() {}void HiRedisPool::init(const std::string ip, int port, size_t maxCon) {boost::lock_guardboost::mutex lock(_mutex);_ip ip;_port port;_maxConnection maxCon;_used 0; }void HiRedisPool::getRedisClient(RedisClientPtr redisClientPtr) {boost::unique_lockboost::mutex lock(_mutex);if (!_pool.empty()) {redisClientPtr _pool.front();_pool.pop_front();} else if (_used _maxConnection){_used;redisClientPtr std::shared_ptrRedisClient(new RedisClient(_ip, _port),std::bind(HiRedisPool::releaseClient, this, std::placeholders::_1));} else {_cv.wait(lock, [this](){return !this-_pool.empty();});redisClientPtr _pool.front();_pool.pop_front();} }void HiRedisPool::releaseClient(RedisClient *client_ptr) {{boost::lock_guardboost::mutex lock(_mutex);_pool.push_back(std::shared_ptrRedisClient(client_ptr,std::bind(HiRedisPool::releaseClient, this, std::placeholders::_1)));}_cv.notify_one();}
http://www.sadfv.cn/news/357033/

相关文章:

  • 网站要怎么样做排名才上得去做网络维护的工资高吗
  • 湖南金辉建设集团有限公司网站ios网站开发工具有哪些
  • 海南网站建设粤icp备建筑人才招聘
  • 甘肃网站建设公司电话陕西电商网站建设
  • 汉唐皓月网站推广方案做外国人的生意哪家网站好
  • 如何制作一个手机网站微信开发者工具怎么打开文件
  • 个人网站主页设计教程初创公司网站设计苏州
  • 网站广告代码wordpress网站网页加密
  • 制作单位网站要怎样建立自己的网站
  • 语言网站开发c 大型网站开发案例
  • 网站开发技术方案编写网上查公司怎么查
  • 做平面设计图的网站杭州笕桥网站建设
  • 郑州微网站建设公司那些做环保网站的好处
  • 网站建设好的图片wordpress页面关联目录
  • 上海网站建设学校建好的网站能修改吗
  • 音乐网站建立双11各大电商平台销售数据
  • 网站开发环境靓号注册网站免费
  • 滨海做网站公司做钢管网站
  • 做网站昆山wordpress 强密码 弱
  • 建网站主机wordpress 搜索 插件
  • 企业oa网站建设方案wordpress查看数据库文件
  • 佛山网站制作咨询设计之家官网入口
  • 网站建设投入及费用做网站 就
  • 网站的前台和后台自己怎么注册域名
  • 在线手机建网站建设银行网站字体
  • 什么样的网站是一个成功的网站云平台网站建设方案
  • 外网图片素材网站wordpress主题文章列表
  • 建设网站答辩情况wordpress 直播插件
  • 建材企业网站源码佛山最好的网站建设
  • 德州网站制作贵州做农业网站