gpt4 book ai didi

multithreading - 在.NET 4.0中如何实现ThreadPool?

转载 作者:行者123 更新时间:2023-12-03 13:00:48 26 4
gpt4 key购买 nike

我最近尝试弄清ThreadPool类的解决方案在.NET 4.0中的工作方式。我尝试通读了反射(reflect)的代码,但对我来说似乎有点过于广泛。

有人可以简单地解释一下该类的工作原理,即

  • 如何存储
  • 中即将出现的每个方法
  • 线程安全吗,据说多个线程尝试将其方法加入线程池?
  • 当达到可用线程的限制时,当其中一个线程变为空闲时,它将如何返回以执行队列中剩余的批处理?是否有一些回调机制?
  • 最佳答案

    当然,在没有实际实现的情况下(或在没有Eric Lippert :)的情况下,我要说的只是常识:

  • 线程池拥有一个内部(循环?)队列,用于保存任务(因此QueueUserWorkItem)。
  • 将任务放入队列是线程安全的(这是肯定的,因为我在这种情况下已经使用了几次)。
  • 我认为每个线程无限期地循环,并在完成当前任务时自动保持从队列中接收任务(当然以线程安全的方式)。如果队列为空,它将阻塞。
  • 关于multithreading - 在.NET 4.0中如何实现ThreadPool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254221/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com