继承Thread类创建多线程
1 package cn.ftf.thread; 2 /** 3 * 多线程实现方式一 继承Thread实现多线程,继承Thread,重写run方法 4 * @author 房廷飞 5 * 6 */ 7 public class StartThread extends Thread{ //对象继承Thread 8 public static void main(String[] args) { 9 StartThread st=new StartThread(); //实例化对象 10 st.start(); //通过子对象的start方法启动多线程 11 12 for(int i=0;i<20;i++) { 13 System.out.println("一边coding"); 14 } 15 } 16 public void run() { //重写对象的run方法 17 for(int i=0;i<20;i++) { 18 System.out.println("一边听歌"); 19 } 20 } 21 }
实现Runnable接口创建多线程
1 package cn.ftf.thread; 2 /** 3 * 实现多线程方式二 :实现Runnable,重写run方法 4 * 避免单继承局限性,方便共享资源 5 * @author 房廷飞 6 * 7 */ 8 public class StartRun implements Runnable{ 9 10 public static void main(String[] args) { 11 /* 12 //实现方法 13 StartRun st=new StartRun(); //创建实现类对象 14 Thread t=new Thread(st); //创建代理类对象 15 t.start(); //启动 16 */ 17 18 //或简洁写,匿名,合三为一 19 new Thread(new StartRun()).start(); 20 21 for(int i=0;i<20;i++) { 22 System.out.println("一边coding"); 23 } 24 } 25 @Override 26 public void run() { 27 for(int i=0;i<20;i++) { 28 System.out.println("一边听歌"); 29 } 30 31 } 32 33 }
实现Runnable接口相对于继承Thread类来说,适合多个相同线程处理同一个资源(如抢票)的情况,可以避免由Java的单继承带来的局限性。
实际应用中,使用实现runnable接口的方式创建多线程的情况要比继承Thread类更常见
原文地址:https://www.cnblogs.com/fangtingfei/p/11247510.html
时间: 2024-10-05 05:50:29