Wieder mal ne Frage zum Thema Java von mir.
Dabei geht es um Threads, meinen absoluten Lieblingsthema in fast jeder Programmiersprache die ich kenne.
Und zwar benutze ich einen DataInputStream in einem Thread der wartet, bis etwas anliegt und das dann versucht zu lesen. Das ganze sieht dann so aus:
Nun brauch das Ding aber 100% CPU auslastung was es ja nicht sein kann.Code:public void run() { try { char c; while ( this.managedConnection.getState() == CONNECTION_STATE.CONNECTION_OPEN ) { // System.out.println( "s: " + this.managedConnection.getState() ); InputStream inputStream = new FileInputStream( this.device ); DataInputStream dataStream = new DataInputStream( inputStream ); for ( int i = 0; i < dataStream.available(); i++ ) { c = dataStream.readChar(); if ( c != -1 ) { this.messageBuffer.addToMessage( c ); if ( this.messageBuffer.checkMessage() ) { // TODO Inform about message complete } } } dataStream.close(); inputStream.close(); } } catch ( FileNotFoundException e) { e.printStackTrace(); } catch ( IOException e ) { e.printStackTrace(); } }
Hat jemand einen besseren Vorschlag?
mfg nul
Lesezeichen