1. 程式人生 > >Java(三)併發控制5.繼承建立執行緒和實現建立執行緒之間的區別

Java(三)併發控制5.繼承建立執行緒和實現建立執行緒之間的區別

這是使用繼承建立的執行緒

class Person extends Thread
{
	private int num=50;
	public Person(String name)
	{
		super(name);
	}
	public void run()
	{
		for(int i=1;i<=50;i++)
		{
			if(num>0)
			{
				System.out.println(Thread.currentThread().getName()+"吃了編號為"+num--+"的蘋果");
			}
		}
	}
}
public class ExtendDemo {
	//建立3個執行緒吃蘋果
	public static void main(String[] args)
	{
		new Person("小A").start();
		new Person("小B").start();
		new Person("小C").start();
	}
}

先用構造器public Person為父類建立name,我們好給執行緒起名字 而Thread.currentThread().getName(),自然就是得到執行緒名字 在這裡插入圖片描述 可以看出公共資源被使用了3次,然後同時執行 這是使用實現建立的執行緒

class Apple implements Runnable
{
	private int num=50;
	public void run()
	{
		for(int i=1;i<=50;i++)
		{
			if(num>0)
			{
				System.out.println(Thread.currentThread().getName()+"吃了編號為"+num--+"的蘋果");
			}
		}
	}
}
public class ImplementDemo {
	public static void main(String[] args)
	{
		//建立三個同學執行緒
		Apple a=new Apple();
		new Thread(a,"小楊").start();
		new Thread(a,"小張").start();
		new Thread(a,"小李").start();
	}
}

在這裡插入圖片描述 可以發現,公共資源只被使用了一次,由3個執行緒共同瓜分