java高级多线程(1)--实现java线程

java高级多线程(1)–实现java线程

多线程:一个程序同时执行多个任务的现象
有两个方法可以实现Java线程的定制:
1)通过继承Thread类来创建。
2)通过实现Runnable接口,并通过Thread类和实现Runnable接口的类来建立线程。

*继承Thread类

  • start()
  • run()
  • sleep()
  • interrupt()吵醒
  • getName() 返回线程名字
  • isAlive() 返回线程状态
  • currentThread() 正在运行的资源*

实现龟兔赛跑一起跑
通过继承Thread类来创建。

class Animal extends Thread //1.继承线程类,实现多线程
{
	int speed;
	String name;
	
	public Animal() 
	{
		super();
	}
	public Animal(int speed, String name) 
	{
		super();
		this.speed = speed;
		this.name = name;
	}
	
	//2.thread 实现run方法,有交替
	public void run()
	{
		int n = 50/speed;
		for (int i = 1;i<=n;i++)
		{
			System.out.println("我是:"+name+",跑了"+i+"秒");
			//sleep 能看到一步一步跑
			//sleep 有风险,需要try,catch ,睡觉是个有风险的事情,可能被吵醒
			try
			{
				sleep(1000);//睡1000ms  也就是一分钟
			}
			catch (InterruptedException e)
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		System.out.println(name+"到达终点");
	}

}
public class A 
{
	public static void main(String[] args)
	{
		Animal turtle = new Animal(5,"飞龟");
		Animal rabbit = new Animal(10,"天兔");
		
		turtle.start();//thread 里面的方法
		rabbit.start();
		//start 的作用:排队,等待时间片轮转,轮到turtle后,执行run()方法
		//时间片轮出去后继续排队,不断交替的过程
		
		//start ()方法里面调用了run() 方法
	}
}

java高级多线程(1)--实现java线程

实现龟兔赛跑一起跑
通过实现Runnable接口

/*
 * 实现runnable 接口的类,实现run()方法
 */
class Animal1 implements Runnable
{
	int speed;
	String name;
	
	public Animal1()
	{
		super();
	}
	public Animal1(int speed, String name)
	{
		super();
		this.speed = speed;
		this.name = name;
	}

	public void run() 
	{
		int n = 50/speed;
		for(int i = 1;i<=n;i++)
		{
			//sleep 能看到一步一步跑
			//sleep 有风险,需要try,catch ,睡觉是个有风险的事情,可能被吵醒
			System.out.println("我是"+name+"跑啦"+i+"秒");
			try
			{
				Thread.sleep(1000);//睡1000ms  也就是一分钟
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		System.out.println(name+"到达终点");
	}
}
public class Two 
{
	public static void main(String[] args)
	{
		Animal1 a = new Animal1(5,"乌龟");
		Animal1 b= new Animal1(10,"飞兔");
		
		//自己创建线程类
		//只有线程才会跑
		Thread turtlea = new Thread(a);
		Thread rabbitb  = new Thread(b);
		//线程搭载着乌龟白兔,去cpu里面排队
		turtlea.start();
		rabbitb.start();
	}
}

java高级多线程(1)--实现java线程
两种方法的区别和联系
java高级多线程(1)--实现java线程

上一篇:PAT乙级题目--超速判断


下一篇:7-8 超速判断 (10 分)(JAVA and C)