是否可以在庫中使用ThreadPool
?在庫中使用ThreadPool是可以接受的嗎?
因爲如果你的庫的用戶使用ThreadPool
以及這顯然會引起一些不愉快的問題(由於ThreadPool
是一個靜態類課程)..
有什麼約定?
是否可以在庫中使用ThreadPool
?在庫中使用ThreadPool是可以接受的嗎?
因爲如果你的庫的用戶使用ThreadPool
以及這顯然會引起一些不愉快的問題(由於ThreadPool
是一個靜態類課程)..
有什麼約定?
是的,我認爲在庫代碼中使用ThreadPool是合適的。即使用戶可以在外面使用ThreadPool,ThreadPool仍然足以調整自身。
。另一方面,作爲一個庫開發人員,你應該提供的靈活性:用戶可以選擇使用線程池,一個特定的線程(S),甚至是第三方線程池實現。
是。
只要它是有據可查的,你提供的方法,使圖書館的用戶控制線程池,如最小/最大線程數,也許不使用線程池在所有的選項。
你也應該讓很清楚裏面露出庫的部分是線程安全的,哪些不是。
ThreadPool被設計爲可以被多個組件同時使用。因此,如果從您的特定庫中使用它,它本身不會出現特別的問題。
什麼可以是一個問題是在你的庫中的線程行爲。必須清楚地記錄你的庫的線程語義。如何創建和使用這些線程應該是一個實現細節。 ThreadPool本身不應該出現問題,除非它的一個固有屬性(COM套件關聯,無法取消線程等)給您的API或消費者帶來問題。