2019.08.05 JAVA中的Thread概念(一)

一.线程的状态
java的线程是通过java.lang.Thread类来实现的。
java的线程通常分为五个状态:创建,就绪,运行,阻塞,死亡

  • 创建:生成了线程对象,但是没有start,此时线程处于创建状态。想象一下缓存视频,首先选择目标视频。

  • 就绪:调用了线程的start方法,此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。加入下载列表。

  • 运行:线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码开始下载。

  • 阻塞:线程正在运行的时候被暂停,通常是为了等待某个时间的发生(比如说某项资源就绪)之后再继续运行。sleep,suspend,wait等方法都可以导致线程阻塞。暂停一下,先下另一集。

  • 死亡:如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪。下载完成。

二.创建并启动线程
1、写一个类继承自Thread类,重写run方法。用start方法启动线程
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调(callback)的方法。

public static void main(String[] args) {
	Thread thread1=new thread1();
	thread1.start();
}
public static class thread1 extends Thread{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("运行了thread1");
	}
}

2、写一个类实现Runnable接口,实现run方法。用new Thread(Runnable target).start()方法来启动

public static void main(String[] args) {	
	Thread thread2=new Thread(new thread2());
	thread2.start();
}
public static class thread2 implements Runnable{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("运行了thread2");		
	}
}

(实现Callable接口等再议…)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章