在库中使用ThreadPool
是否可以接受?
因为如果您的库的用户也使用ThreadPool
,这显然可能会导致一些令人不快的问题(由于ThreadPool
当然是静态类)..
什么是惯例?
答案 0 :(得分:3)
是的。我认为在库代码中使用ThreadPool是合适的。即使用户可能在外部使用ThreadPool,ThreadPool仍然足以自我调整。
另一方面,作为库开发人员,您应该提供灵活性:用户可以选择使用ThreadPool,特定线程,甚至是第三方线程池实现。
答案 1 :(得分:1)
是
只要文档记录良好,并且您提供了允许库的用户控制线程池的方法,例如最小/最大线程,也可以选择不使用线程池。
你还应该非常清楚你的库的哪些暴露部分是线程安全的,哪些不是。
答案 2 :(得分:0)
ThreadPool旨在同时由多个组件使用。因此,如果从您的特定库中使用它本身就没有特别的问题。
可能存在的问题是库中的线程行为。必须清楚地记录您的库的线程语义是什么。如何创建和使用这些线程应该是一个实现细节。 ThreadPool本身不应该出现问题,除非它的一个固有属性(COM公寓亲和力,无法取消线程等)为您的API或消费者带来问题。