In einem Multi-threaded Java-Programm, was passiert, wenn ein Thread-Objekt T instanziiert wurde, und hat T.join() aufgerufen, bevor der Thread gestartet wurde? Angenommen, ein anderer Thread könnte T. start() jederzeit aufrufen, nachdem T instanziiert wurde, entweder bevor oder nachdem ein anderer Thread T.join() aufgerufen hat.Was ist das Verhalten von Thread.join() in Java, wenn das Ziel noch nicht gestartet wurde?
Ich frage, weil ich denke, dass ich ein Problem habe, wo T.join() vor T.start() aufgerufen wurde, und der Thread, der T.join() aufruft, hängt.
Ja, ich weiß, dass ich einige Designprobleme habe, die, wenn behoben, dies zu einem Nicht-Problem machen könnten. Ich würde jedoch gerne die Besonderheiten des join() Verhaltens kennen, denn das einzige, was die Java-API-Dokumentation sagt, ist "Wartet darauf, dass dieser Thread stirbt."
Versuchen Sie es. Mach ein anderes einfaches Projekt und schau was passiert. – BeemerGuy
BeemerGuy: Vielleicht werde ich irgendwann. Ich bin jedoch nicht davon überzeugt, dass nur durch Versuch und Irrtum klar wird, was hinter den Kulissen vor sich geht. Es gibt immer die Chance, die jemand anderes bereits weiß, und kann mir die Zeit sparen. – DGH