b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

STL多线程安全问题

电脑杂谈  发布时间:2020-06-15 23:16:58  来源:网络整理

禁止跨线程调用安全_wpf 跨线程访问控件_多线程调用单例类中的方法会不会造成线程安全问题?

1)stl线程安全.

一些与stl容器的线程安全有关的主题.

wpf 跨线程访问控件_多线程调用单例类中的方法会不会造成线程安全问题?_禁止跨线程调用安全

一般而言,stl对多线程的支持仅限于以下两点: (看起来像在“有效STL”中所描述的一样)

1. 多位读者是安全的. 也就是说,多个线程可以同时读取容器的内容.

wpf 跨线程访问控件_禁止跨线程调用安全_多线程调用单例类中的方法会不会造成线程安全问题?

也就是说,此时,多个线程调用了不涉及写入的容器接口,例如查找,开始,结束等.

2. 对于在不同容器中的多个编写器来说是安全的. 也就是说,多个线程同时写入不同的容器.

多线程调用单例类中的方法会不会造成线程安全问题?_禁止跨线程调用安全_wpf 跨线程访问控件

但是,当同一容器中有线程写入和线程读取时,如何确保正确性?

它需要由程序员控制. 例如,当线程A读取容器中的项目时,线程B正在删除该项目. 这可能会导致无法预测的错误.

wpf 跨线程访问控件_禁止跨线程调用安全_多线程调用单例类中的方法会不会造成线程安全问题?

通常的解决方案是使用成本较低的关键部分(CRITICAL_SECTION)进行同步. 按照以下方式进行同步,基本上可以实现线程安全的容器(也就是说禁止跨线程调用安全,在执行写操作的情况下仍然可以保持安全).

1. 每次调用容器的成员函数时禁止跨线程调用安全,都需要将其锁定.

2. 每个容器返回的迭代器的生存期都需要锁定.

3. 在调用算法执行期间,每个容器都需要锁定.

与Ronaldinho有关task_server的多线程安全通信:

是这种情况. 当您调用地图的任何接口(例如end(),begin(),find()等)时,它可能会返回一个迭代器. 如果另一个线程正在修改该映射,则迭代器It变得无效,然后使用此迭代器行为可能会导致问题. 或在find()函数内部,您将访问映射内的红黑树的数据结构,此红黑树可能会被其他线程调整. (例如在地图中插入不存在的记录). 因此,这很危险.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-246731-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 刘琳琳
        刘琳琳

        反正中国门口天天被侦查

      热点图片
      拼命载入中...