classThreadTestextendsThread{//从Thread类扩展出子类publicvoidrun(){//覆写Thread类中的run()方法for(int i =0; i <3; i++){
System.out.println("TestThread 在运行");}}}publicclassTest{publicstaticvoidmain(String args[]){newThreadTest().start();for(int i =0; i <3; i++){
System.out.println("main 线程在运行");}}}/*
输出
main 线程在运行
main 线程在运行
main 线程在运行
TestThread 在运行
TestThread 在运行
TestThread 在运行
*/
classTestThreadimplementsRunnable{publicvoidrun(){for(int i =0; i <3; i++){
System.out.println("TestThread 在运行");}}}publicclassTest{publicstaticvoidmain(String args[]){
TestThread t =newTestThread();newThread(t).start();for(int i =0; i <3; i++){
System.out.println("main 线程在运行");}}}/*
输出
main 线程在运行
main 线程在运行
main 线程在运行
TestThread 在运行
TestThread 在运行
TestThread 在运行
*/
a. 匿名内部类方式
使用线程的内匿名内部类方式,可以方便的实现每个线程执行不同的线程任务操作;
使用匿名内部类的方式实现 Runnable 接口,重写 Runnable 接口中的 run 方法:
publicclassTest{publicstaticvoidmain(String[] args){// new Runnable(){// public void run(){// for (int i = 0; i < 20; i++) {// System.out.println("张宇:"+i);// }// }// }; //---这个整体 相当于new MyRunnable()
Runnable r =newRunnable(){publicvoidrun(){for(int i =0; i <20; i++){
System.out.println("张宇:"+ i);}}};newThread(r).start();for(int i =0; i <20; i++){
System.out.println("费玉清:"+ i);}}}