【问题标题】:how to ensure the execution sequence of threads如何保证线程的执行顺序
【发布时间】:2019-03-01 07:24:53
【问题描述】:

在多线程应用程序中,我们启动多个线程。我们允许线程以随机顺序执行,除了其中一个函数调用,我们需要确保执行顺序。如何在 C# 中做到这一点?

【问题讨论】:

  • 您将使用什么标准来订购您的线程?

标签: c# asp.net multithreading


【解决方案1】:

我不确定处理这种情况的最正确方法,因为线程自然是异步的。

但我会使用的最简单的技巧是并发控制。 假设您有 3 个线程 T1、T2 和 T3,以及 3 个互斥锁 M1、M2 和 M3。每当您需要开始按顺序执行它们时,请使用互斥锁来创建某种链锁:

T1 获得 M1 锁 T2获取M2锁,等待M1释放 T3 获取 M3 锁并等待 M1 和 M2 被释放。

当一个线程完成了该任务的一部分时,然后释放它的锁。

等等,还有更多的线程。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多