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

比较火的小程序购物平台宁波seo关键词优化方法

比较火的小程序购物平台,宁波seo关键词优化方法,城乡建设委员会官方网站,高中男女做那个视频网站std::stack容器的接口包括 empty(), size(), top(), push(), pop()等。 问题 其原接口在多线程的情况下,会持续很多问题。 例如,在std::stack容器的接口中,在多线程下应用时,empty()和size()的结果是不可信的。因为尽管在某线程…

std::stack容器的接口包括 empty(), size(), top(), push(), pop()等。

问题

其原接口在多线程的情况下,会持续很多问题。

例如,在std::stack容器的接口中,在多线程下应用时,empty()和size()的结果是不可信的。因为尽管在某线程调用empty()或size()时,返回值可能是正确的,但是一旦函数返回,其他线程就不再受限,从而能自由地访问栈容器,可能马上会有新元素入栈,或者现有的元素立即出栈,这会使前面线程得到的结果失效。

其次,top()和pop()之间也存在着竞争条件,例如

线程A线程B
if(!s.empty());
if(!s.empty());
 int const value = s.top();
 int const value = s.top();
s.pop()
do_something(value);s.pop()
do_something(value);

假设,当前只有两个线程正在运行,且在两个top()调用之间不存在其他操作,那么栈容器不会被更改,即两个线程会得到相同的值。另外,在top()与pop()的调用之间也没有其他调用,结果栈顶元素被调用了两次,但栈顶的第二个元素却始终没被读取就丢弃了。

解决方法

为了线程安全,在每次操作之前,都加锁

面对第二个问题,将top()和pop()操作合二为一

#include <memory>
#include <mutex>
#include <stack>using namespace std;struct empty_stack :std::exception
{const char* what() const throw();
};template<typename T>
class threadsafe_stack
{
private:stack<T> data;mutable mutex m;public:threadsafe_stack() {};threadsafe_stack(const threadsafe_stack& other){lock_guard<mutex> lock(other.m);data = other.data;}threadsafe_stack& operator=(const threadsafe_stack&) = delete;void push(T new_value){lock_guard<mutex> lock(m);data.push(move(new_value));}shared_ptr<T> pop(){lock_guard<mutex> lock(m);if (data.empty()) throw empty_stack();shared_ptr<T>const res(std::make_shared<T>(data.top()));data.pop();return res;}void pop(T& value){lock_guard<mutex> lock(m);if (data.empty()) throw empty_stack();value = data.top();data.pop();}bool empty() const{lock_guard<mutex> lock(m);return data.empty();}
};

http://www.mmbaike.com/news/65643.html

相关文章:

  • 西安手机网站建设公司排名外链互换平台
  • 如何用自己的电脑做网站空间网站推广手段
  • 品牌建设的重要意义培训课题南宁优化网站网络服务
  • 做网站视频存储竞价推广外包
  • wordpress集成apiseo网站查询工具
  • 智能建站是什么比较正规的代运营
  • 深圳网站建设行业新闻免费代理上网网站
  • 本科自考报名郑州seo代理公司
  • 什么公司网站建设做的好互动营销名词解释
  • 免费一天赚500元游戏如何优化seo
  • 个人博客网站备案域名备案
  • 衡阳做网站优化百度网站名称
  • 上线了建站教程百度高级搜索引擎入口
  • 上海 经营性网站备案惠州seo排名外包
  • 宁波网站建设优化北京建站公司
  • 网站的ftp在哪里可以查到启动互联全网营销推广
  • 微信小程序模板 免费模板平台嘉兴百度seo
  • 如何找外贸网站建设公司nba最新新闻新浪
  • 创世网络网站建设俄罗斯搜索引擎yandex推广
  • 建设银行注册网站网站建设的流程及步骤
  • 自己做的网站发布到网上视频播放不了bt最佳磁力搜索引擎
  • 网站备案流程详细外链群发平台
  • 西双版纳傣族自治州地图高清版河南整站关键词排名优化软件
  • 奇迹网站建设多少钱电商平台排名
  • wordpress上传flac贺州seo
  • 购物网站怎么做优化免费b站推广网站入口202
  • 甘肃网站建设项目北京网络营销咨询公司
  • 南口做网站的公司营销策略范文
  • 网站正在建设中 页面百度快速收录办法
  • 赣州南康网站建设慧聪网seo页面优化