我正在运行一个有很多线程的应用程序。 所有这些线程都使用GPS坐标更新数据库。 同时,应用程序可以接收同步请求。 在服务器处理此请求之前,所有写入线程都必须完成其工作。 因此我使用一组等待句柄来管理它。
所以这是场景:
演员:
1 Synchro Thread
N Writing Thread
N写作线程正在运作。一个同步线程到达等待处理停止。 它要求锁定。这样做,它被置于“声明锁定线程”的列表末尾。
问题是:这个列表可能很长,或者我的同步线程是最高优先级。
如何才能实现 VIP通行证?
答案 0 :(得分:2)
听起来你应该使用System.Threading.ReaderWriterLockSlim。编写器可以在锁定的“读取”模式下工作,同步访问的同步线程可以进入“写入”模式。
答案 1 :(得分:0)
听起来你需要实现优先级锁定系统。有一个例子here