Wenn ich read() auf einem DataInputStream aufruft, dauert es CPU-Zyklen, die auf Daten warten, oder liefert es den aktuellen Thread und wird durch einen Interrupt geweckt, der signalisiert, dass Daten angekommen sind?java: datainputstream: Nehmen Leseaufrufe Prozessorzeit in Anspruch, während sie auf Daten warten?
Meine Motivation ist festzustellen, ob ein Stream-Reader in einem eigenen Thread sein muss oder nicht. Ein blockierender Lesevorgang, der CPU-Zeit beansprucht, wäre nicht ideal, da dies den Hauptthread aufhängen würde.
Verwandte Frage: Wenn eine Methode als eine Blockierung beschrieben wird, IMPULSIERT, dass der Thread während des Wartens nachgibt? Oder gibt es keinen Vertrag/Garantie? Eine Methode, die ständig nach Daten sucht/abfragt blockiert immer noch, so klingt es für mich.