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

万网网站域名多少钱一年wordpress完整模板

万网网站域名多少钱一年,wordpress完整模板,佛山市锵美装饰有限公司网站建设案例,定制型网站制作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.yayakq.cn/news/304249/

相关文章:

  • 信息图表网站武威网站建设优化
  • 厦工品牌网站设计余姚建设网站的公司
  • jq 网站模板做qq主题的网站
  • 如何做企业黄页网站老板办公室装修效果图
  • 适合美工的设计网站遵化网站定制
  • 网站设计案例公司网页设计培训机构学什么好
  • 建设银行网银网站激活网站开发建设企业
  • 网络网站租一个网站建设需要多少钱
  • 中国城乡住房和建设部网站互动力 网站建设
  • 宝坻集团网站建设app开发模板网站
  • 网站首页生成静态页面资源搜索器
  • 郑州专做喜宴的网站xampp系统wordpress
  • 广州网站优化价格wordpress ftp没有权限
  • 常州中小企业网站制作安徽省同济建设集团网站
  • 龙岩网站建设馨烨举报个人备案网站做经营性
  • 凡科网站后台网店代运营哪家公司好
  • 创建网站的各项费用小程序开发平台哪个公司的好
  • 网站首页怎么制作江苏省建设工程造价管理协会网站
  • 遂川县城乡建设局网站阐述建站流程
  • 吴桥网站建设价格江西旅游 网站建设
  • 儿童做的小游戏下载网站佛山建设外贸网站公司吗
  • 一个网站绑定两个域名伊犁网站建设公司
  • 气动喷枪网站建设301 网站 怎么做
  • wordpress 当前页面名称兰州关键词优化效果
  • wordpress多站点搭建o2o新零售系统
  • 岐山网站建设lamp网站开发项目文档
  • 建立第一个网站wordpress全平台解决方案
  • 哈尔滨网站建设多少钱威宁建设局网站
  • 变更网站备案信息主机屋建网站源码
  • ftp 上传网站手机软件app制作的三种方式