ist es akzeptabel, Threadpool in einer Bibliothek zu benutzen?
-
21-09-2019 - |
Frage
ist es akzeptabel, ThreadPool
in einer Bibliothek zu benutzen?
, weil das offensichtlich könnte einige unangenehme Probleme verursachen, wenn der Benutzer Ihrer Bibliothek verwendet ThreadPool
als auch (aufgrund ThreadPool
eine statische Klasse natürlich ist) ..
Was ist die Konvention?
Lösung
Yes.I denke, es angemessen ist, die Verwendung des Threadpool in der Bibliothek Code zu machen. Selbst wenn der Benutzer Thread außerhalb verwenden, Threadpool ist immer noch gut genug, um zu stimmen selbst.
Auf der anderen Seite, als Bibliothek Entwickler, sollten Sie Flexibilität bieten. Anwender kann Threadpool, einen bestimmten Thread (s) oder sogar eine 3rd-Party-Thread-Pool-Implementierung verwenden
Andere Tipps
Ja.
Solange es ist gut dokumentiert, und Sie bieten Methoden, um die Benutzer der Bibliothek zu ermöglichen, den Threadpool zu steuern, wie Min- / Max-Threads und vielleicht die Option auf kein Threadüberhaupt.
Sie sollten auch sie machen sehr klar, welche Teile Ihrer Bibliothek ausgesetzt sind THREAD und welche nicht.
Threadpool ist so konzipiert, gleichzeitig von mehreren Komponenten verwendet werden. So ist es an sich stellt kein besonderes Problem verwendet, wenn von Ihrer bestimmten Bibliothek.
Was ein Problem sein kann, ist das Verhalten in Ihrer Bibliothek im allgemeinen Threading. Es muss klar dokumentiert werden, was die Threading-Semantik Ihrer Bibliothek ist. Wie diese Threads erstellt und verwendet wird, sollte sollte eine Implementierung Detail sein. Der Thread selbst sollte kein Problem darstellen, wenn man nicht davon inhärente Eigenschaften (COM Wohnung Affinität, die Unfähigkeit Threads abzubrechen, etc ...) ist stellt ein Problem für Ihre API oder Verbraucher.