【问题标题】:Increase thread priority on wait handles增加等待句柄的线程优先级
【发布时间】:2009-07-26 23:04:20
【问题描述】:

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

所以这里是场景:

演员:

1 Synchro Thread
N Writing Thread

N 个写作线程正在工作。一个同步线程到达 wait 句柄停止。 它要求锁。这样做,它被放在“声明锁线程”的列表的末尾

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

我怎样才能给它一个VIP通行证

【问题讨论】:

    标签: c# multithreading


    【解决方案1】:

    听起来您应该改用 System.Threading.ReaderWriterLockSlim。写者可以在锁的“读”模式下操作,需要独占访问的同步线程可以进入“写”模式。

    【讨论】:

    • 这在我的架构中不起作用。作家们真的必须在同步发生之前完成他们的工作。我只是想知道一个较年轻的线程是否可以优先于一个较旧的线程来获取锁。
    • Writer (Synchro) 将在 ReaderWriterLockSlim 上获得优先权,并且“Readers”(您的 DataWriters)将在允许以“Write”模式访问之前完成。您可以有多个并发“读取”模式(您的 DataWriters),但只有一个线程独占“写入”(同步)模式。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      相关资源
      最近更新 更多