PackageCN.MUTIPART.THD; Public classTest02 { Public Static voidMain (string[] args) {Mypainter P=NewMypainter (); NewThread () { Public voidrun () { while(true){ Try{Thread.Sleep (20); } Catch(interruptedexception e) {//TODO auto-generated Catch blockE.printstacktrace (); } p.print1 (); } }; }.start (); NewThread () { Public voidrun () { while(true){ Try{Thread.Sleep (5); } Catch(interruptedexception e) {//TODO auto-generated Catch blockE.printstacktrace (); } p.print2 (); } }; }.start (); }}classMypainter {PrivateString lock =NewString ("Thread lock"); Public voidprint1 () {synchronized(lock) {System.out.print ("[No"); System.out.print (Is); System.out.print (Wide); System.out.print ("Sue")); System.out.println (); } } Public voidPrint2 () {synchronized(lock) {System.out.print ("[X"); System.out.print (X); System.out.print (X); System.out.print ("X]"); System.out.println (); } }}
Multi-line Cheng two