代码之家  ›  专栏  ›  技术社区  ›  bitbonk

线程池与专用线程-何时选择哪个线程

  •  2
  • bitbonk  · 技术社区  · 14 年前

    有什么方法(除了实际的性能测量,很难让它们变得真实)或经验法则当我应该停止使用 ThreadPool 使用专用的 Thread 线程 因为它不可能从 线程池 线程池

    但魔障在哪里呢?如何决定使用哪种方法?

    在简单的应用程序中,它可能没那么重要。但我正在处理一个基于.NET的自定义应用程序框架,其中单个应用程序可以有一个 许多

    4 回复  |  直到 14 年前
        1
  •  2
  •   Brian Rasmussen    14 年前

    对短期运行的任务使用线程池线程。

    如果可能,请使用.NET4中的Task类。默认的调度程序使用线程池,但是您可以提供自己的调度程序,从而精确地控制任务映射到线程的方式。

        2
  •  3
  •   Hans Passant    14 年前

    另外,任何很可能长时间阻塞的线程(无论是在锁定还是慢速I/O上)都应该是常规线程。因为处理器不会做任何有用的工作,所以阻塞线程会阻止其他可能有有用工作要做的tp线程至少运行半秒钟。当然,这使得这样的线程几乎自动地被称为“长”线程。

        3
  •  1
  •   testalino    14 年前

    如果应用程序要使用大量线程,可以增加线程池中的最小线程数,以避免出现瓶颈。我看不出专用线程有什么好处。唯一想到的是,您可以中止一个专用线程(无论如何这是不可取的)。

    表现应该是一样的。NET4.0框架中的任务并行库只使用线程池,因此对您的项目来说也不成问题。

        4
  •  0
  •   supercat    14 年前