1.new a thread subclass (here is an inner class) usually written like Subthread
Thread thread=new thread () {
@Override public void run () { while (true) { try { thread.sleep]; System.out.println ("0:" +Thread.CurrentThread ()); System.out.println ("1:" +this. CurrentThread ());} catch (Interruptedexception e) {e.printstacktrace ();}}}
Thread.Start ();
Subthread
PackageCom.test.thread; Public classSubthreadextendsthread{@Override Public voidrun () { while(true) {System.out.println ("111111111111"); } } Public Static voidMain (string[] args) {Subthread sub=NewSubthread (); Sub.start (); }}
2.new an Runnable object, object-oriented usage
Thread thread2=NewThread (NewRunnable () {@Override Public voidrun () { while(true){ Try{Thread.Sleep (500); System.out.println ("2:" +Thread.CurrentThread ()); } Catch(interruptedexception e) {e.printstacktrace (); } } } }); Thread2.start ();
Method 2 is usually written as follows
Thread Thread3=new Thread (new subrunable ());
Thread3.start ();
PackageCom.test.thread; Public classSubrunableImplementsrunnable{@Override Public voidrun () { while(true){ Try{Thread.Sleep (500); System.out.println ("Subrunable:" +Thread.CurrentThread ()); } Catch(interruptedexception e) {e.printstacktrace (); } } }}
Traditional threading Implementation Methods