Starte thread - argument til run metoden
Hej eksperterJeg har en skoleopgave, som jeg ikke helt kan gennemskue, hvordan jeg får løst mest hensigtsmæssigt.
Koden ser ud som følger:
public class SlowPrinterEx{
public static void main( String[ ] args ){
int length = 20;
String[ ] s1 = new String[ length ];
String[ ] s2 = new String[ length ];
String[ ] s3 = new String[ length ];
for( int n = 0; n < length; n++ ){
s1[n] = "A";
s2[n] = "B";
s3[n] = "C";
}
startTime = System.currentTimeMillis( );
SlowPrinter.nonBlockingPrint( s1 );
SlowPrinter.nonBlockingPrint( s2 );
SlowPrinter.nonBlockingPrint( s3 );
t = ( System.currentTimeMillis( ) - startTime ) / 1000;
System.out.println( );
System.out.println( "Time for 3 nonBlockingPrints: " + t + " seconds" );
}
}
class SlowPrinter{
public static void nonBlockingPrint( String[ ] s ){
String msg = "nonBlockingPrint( String[ ] s ) not yet implemented";
throw new NotImplementedException( msg );
}
}
class NotImplementedException extends RuntimeException{
NotImplementedException( ){ super( ); }
NotImplementedException( String s ){ super( s ); }
}
Jeg skal levere indholdet af den statiske metode nonBlockingPrint, der skal oprette en thread og printe indholdet af String arrayet ud.
Min umiddelbare tanke er at lade klassen SlowPrinter arve fra klasen Thread, oprette et objekt af SlowPrinter og kalde
dette objekts start().
Mit spørgsmål går på, hvordan jeg får run() til at udskrive indholdet af det String array der gives som argument til nonBlockingPrint.
Er jeg nødt til at oprette et field i klassen SlowPrinter af typen String [] og give dette field værdien fra NonBlockingPrint når jeg opretter SlowPrinter objektet i NonBlockingPrint (dvs. argument til SlowPrinter konstruktøren), eller kan jeg på en eller anden måde give et argument til run metoden?
Min forståelse pt. er at jeg kun skal kalde metoden start fra NonBlockingPrint, og derfor ikke er herre over kaldet til run().
På forhånd tak
