5

可以ThreadPool在图书馆使用吗?

因为如果您的库的用户也在使用这显然可能会导致一些不愉快的问题ThreadPoolThreadPool当然是因为是静态类)..

什么是约定?

4

3 回答 3

3

是的。我认为在库代码中使用 ThreadPool 是合适的。即使用户可能会在外面使用 ThreadPool,ThreadPool 仍然可以很好地调整自己。

另一方面,作为库开发人员,您应该提供灵活性:用户可以选择使用 ThreadPool、特定线程,甚至是第 3 方线程池实现。

于 2009-10-17T02:52:25.787 回答
1

是的。

只要它有据可查,并且您提供允许库用户控制线程池的方法,例如最小/最大线程,并且可能根本不使用线程池的选项。

您还应该非常清楚库的哪些公开部分是线程安全的,哪些不是。

于 2009-10-17T02:45:15.670 回答
0

ThreadPool 旨在供多个组件同时使用。因此,如果从您的特定库中使用它本身并没有特别的问题。

可能是一个问题是您的库中的一般线程行为。必须清楚地记录您的库的线程语义是什么。这些线程是如何创建和使用的应该是一个实现细节。ThreadPool 本身不应该出现问题,除非它的一个固有属性(COM 单元亲和性、无法取消线程等)给您的 API 或消费者带来问题。

于 2009-10-17T02:58:44.073 回答