三个线程吃苹果

class Apple implements Runnable{
	private int num=50;
	public void run() {
		for(int i=0;i<50;i++) {
			if(num>0) {
				System.out.println(Thread.currentThread().getName()+"吃了编号为"+num--+"的苹果");
			}
		}
	}
}
//使用Runnable方式实现,三个同学吃50个苹果的比赛
public class EatApple {
    public static void main(String[] args) {
		Apple a=new Apple();
		new Thread(a,"小A").start();
		new Thread(a,"小B").start();
		new Thread(a,"小C").start();

	}

}

三个线程共用一个苹果对象

分析继承方式和实现方式的区别:

继承:

1)java中类是单继承的,如果继承了Thread了,该类就不能再有其他直接父类了

2)从操作上分析,继承方式更简单,获取线程名字也简单

3)从多线程共享同一个资源上分析,继承方式不能做到

实现

1)java中类可以多实现接口,此时该类还可以继承其他类,并且还可以实现其他接口(设计上,更优雅)

2)从操作上分析,实现方式稍微复杂点,获取线程名字也比较复杂,得使用Thread.currentThread()来获取当前线程的引用

3)从多线程共享同一个资源上分析,实现方式可以做到

尽量多使用实现方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值