Java开启多线程的三种方法?

1.继承Thread类

public class Demo1 {
	public static void main(String[] args) {
		myThread mt = new myThread(); //3.创建子类对象
		mt.start();                   //4.开启线程
		for(int i = 0;i<10000;i++) {
			System.out.println("bb");
		}	
	}
}

class myThread extends Thread{  //1.类继承Thread类
	public void run() {         //2.重写run方法
		for(int i = 0;i<10000;i++) {
			System.out.println("aaaa");
		}
	}
}

2.实现Runnable接口

public class Demo2 {
	public static void main(String[] args) {
		myThread02 mt = new myThread02(); //3.创建子类对象
		Thread t = new Thread(mt);        //4.把子类对象当成参数传给Thread
		t.start();                        //5.开启线程
		for(int i = 0;i<10000;i++) {
			System.out.println("bb");
		}
	}
}

class myThread02 implements Runnable{   //1.实现Runnable接口
	@Override
	public void run() {                 //2.重写run方法
		for(int i = 0;i<10000;i++) {
			System.out.println("aaaa");
		}
	}
}

3.匿名内部类(本质就是前两种)

public class Demo3 {
	public static void main(String[] args) {
		//创建Thread匿名对象
		new Thread() {
			public void run() {
				for(int i = 0;i<10000;i++) {
					System.out.println("aaaa");
				}
			}
		}.start();
		
		//创建Thread匿名对象,传入实现Runnable接口的匿名对象
		new Thread(new Runnable() {
			public void run() {
				for(int i = 0;i<10000;i++) {
					System.out.println("bb");
				}
			}
		}).start();
	}
}

总结:由于Java是单继承如果已经继承了父类,不能通过继承Thread类来实现多线程,可以通过实现Runnable接口来实现,但这种方法在使用时需要创建Thread类对象(因为Runable没有start()方法,所以需要创建,但是写了更多的带代码),可以把Runnable当成是继承Thread的一个补充,匿名内部类的实现方式最灵活,根据自己的需要选择用哪一种。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值