2009-07-24 79 views
0

我正在用很多线程运行一个应用程序。 所有这些线程都使用GPS坐标更新数据库。 同时,应用程序可以接收同步请求。 在服务器可以处理这个请求之前,所有的写入线程都必须完成他们的工作。 因此,我正在使用一个等待句柄数组来管理这个。在等待句柄上增加线程优先级

因此,这里的情景:

演员:

1 Synchro Thread 
N Writing Thread 

n个写线程正在。一个同步线程到达等待句柄停止。 它声称为锁。这样做,它被放在末尾的“索赔锁线程”列表

问题是:此列表可能很长,或者我的同步线程是最高优先级

我该如何实现VIP通行证

回答

2

听起来像你应该使用System.Threading.ReaderWriterLockSlim来代替。写入者可以在锁的“读取”模式下工作,需要独占访问的同步线程可以进入“写入”模式。

+0

这不适用于我的架构。作家真的不得不在完成同步之前完成他们的工作。 我只想知道一个年轻的线程是否可以获得优先于较老的线程获取锁定。 – Roubachof 2009-07-24 13:47:31

0

听起来就像你需要实现优先锁定系统。有一个例子here