J. E. N. I.
}
}
System. out. println( str2);
class PrintStringsThread implements Runnable { Thread thread; String str1, str2; PrintStringsThread( String str1, String str2) { this. str1 = str1; this. str2 = str2; thread = new Thread( this); thread. start();
} public void run() {
TwoStrings. print( str1, str2);
}
}
class TestThread { public static void main( String args []) { new PrintStringsThread(" Hello ", " there."); new PrintStringsThread(" How are ", " you?"); new PrintStringsThread(" Thank you ", " very much!");
}
} Program tersebut saat ini memberikan keluaran yang benar.
Hello there. How are you? Thank you very much!
9.5.4 Contoh Synchronized Kedua
Dibawah ini adalah versi yang lain dari kode diatas. Sekali lagi, method print dari class TwoStrings telah disinkronisasi. Akan tetapi selain synchronized keyword diimplementasikan pada method, ia juga diaplikasikan pada object-nya.
class TwoStrings { static void print( String str1, String str2) { System. out. print( str1); try {
Thread. sleep( 500); } catch( InterruptedException ie) { } System. out. println( str2);
}
}
class PrintStringsThread implements Runnable { Thread thread; String str1, str2; TwoStrings ts; PrintStringsThread( String str1, String str2, TwoStrings ts) {
Pengenalan Pemrograman 2 11