多线程访问共享资源的优化问题
是这样的
现在需要实现一个功能:
有一个任务池(task group),里面装载了当前需要执行的N个任务(task),每个任务由多级任务描述定义,例如任务名称(task name),执行时间(time policy)等等。各级信息的定义存储在各自的组内,例如任务名称组(task name group),时间策略组(time policy group)等等。
也就是说一个具体的任务(task)是从任务名称组和时间策略组各取一个对象组成的。任务的具体定义由客户端完成。
现在我是使用线程池(N个线程)来执行任务的,任务分发对象从任务池中取出一个任务,然后分配到一个工作线程中。
当前的问题是,这些任务多级描述定义能够被客户端随时修改,有一个线程负责接收响应,来具体的修改任务描述等信息。
那这肯定就会造成资源竞争,我在权衡之下,使用读写锁来保护这些任务信息。毕竟互斥锁的效率比较低,尤其是有N个线程只读,1个线程只写的情况下。
请问各位大神,这样的实现机制有没有问题,还有没有更优的实现机制?