Soweit ich weiß, helfen Executors bei der Ausführung von Runnables. Z.B. Ich würde wählen, einen Executor zu verwenden, wenn ich mehrere Worker-Threads habe, die ihre Arbeit erledigen und dann beenden. Der Executor würde die Erstellung und die Beendigung der Threads behandeln, die zum Ausführen der Worker-Runnables erforderlich sind.Ist hier der Thread, der dem Executor vorgezogen werden soll?
Aber jetzt bin ich mit einer anderen Situation konfrontiert. Eine feste Anzahl von Klassen/Objekten soll ihren eigenen Thread einkapseln. So wird der Thread bei der Erstellung dieser Objekte gestartet und der Thread wird für die gesamte Lebensdauer dieser Objekte weiter ausgeführt. Die wenigen Objekte werden wiederum am Anfang des Programms erstellt und existieren für die gesamte Laufzeit. Ich schätze Threads sind in dieser Situation den Executors vorzuziehen, aber wenn ich das Internet lese, scheint jeder in jeder möglichen Situation Executors über Threads zu verwenden.
Kann mir bitte jemand sagen, ob ich Executors oder Threads hier wählen möchte und warum?
Danke
Was werden diese Fäden während ihrer Lebensdauer tun ? Werden sie zu 100% damit beschäftigt sein, Dezimalzahlen von Pi zu berechnen, oder werden sie bis zur Interaktion inaktiv sein? – aioobe
es hängt ... einige von ihnen werden etwa 50% Leerlaufzeit haben, andere nur etwa 10% – flxh
... noch andere werden 100% beschäftigt Computing Hashes von Bäumen sein. – flxh