多线程访问共享资源的优化问题

ruiruining2010 ruiruining2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
是这样的

现在需要实现一个功能:

有一个任务池(task group),里面装载了当前需要执行的N个任务(task),每个任务由多级任务描述定义,例如任务名称(task name),执行时间(time policy)等等。各级信息的定义存储在各自的组内,例如任务名称组(task name group),时间策略组(time policy group)等等。

也就是说一个具体的任务(task)是从任务名称组和时间策略组各取一个对象组成的。任务的具体定义由客户端完成。

现在我是使用线程池(N个线程)来执行任务的,任务分发对象从任务池中取出一个任务,然后分配到一个工作线程中。

当前的问题是,这些任务多级描述定义能够被客户端随时修改,有一个线程负责接收响应,来具体的修改任务描述等信息。

那这肯定就会造成资源竞争,我在权衡之下,使用读写锁来保护这些任务信息。毕竟互斥锁的效率比较低,尤其是有N个线程只读,1个线程只写的情况下。

请问各位大神,这样的实现机制有没有问题,还有没有更优的实现机制?
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
ruiruining2010
Linux/Unix社区 23,224 成员 74,535 内容