c++ - 函数的线程安全向量,每个函数都可以删除对该向量的访问
问题描述
假设我有一个包含函数向量的类(例如。std::vector<T(*)(...)>
)。该类具有从该向量中添加和删除函数以及从头到尾调用它们的方法。
我希望这个类是线程安全的,所以在每个方法(添加、删除和调用)中,我使用信号量(特别是 win32 信号量对象)来锁定对向量的访问,同时方法完成使用它。但是,我希望能够在同一个线程中从向量中删除函数(只有当向量中的函数使用添加、删除或调用方法修改向量时才会发生这种情况)。有没有办法做到这一点 - 锁定向量不被其他线程访问,但能够从同一个线程访问?
解决方案
推荐阅读
- entity-framework - 从附加实体内部获取数据库上下文
- linux - 我如何能够从终端将共享库作为可执行文件运行?
- c - 使用 OpenSSL Libcrypto 循环 ASN.1 序列
- ios - 使用产品 -> 存档时找不到“FirebaseCore/FirebaseCore.h”文件
- powershell - 尝试使用小于运算符评估注册表项显示版本失败
- ajax - Laravel - 带有 Ajax 的 daterangepicker 返回 500 内部服务器错误的状态
- python - Tkinter 事件处理程序无法查看全局变量
- python - 广播失败:如何决定广播的轴心?
- python - 如果我加载视频,python selenium 会给我 TimeoutException
- python - 获取电子邮件问卷的正文并将答案提取到 .csv