线程
概念:线程是CPU调度的最小单位,在一个进程中至少会有一条由虚拟机发起的线程,成为主线程。
线程有着生命周期,包括以下部分:
(1)创建线程对象
(2)线程启动 开始 start
(3)CPU的调度:a.运行 running
b.阻塞 blocked
(4)run方法结束 死亡 dead
对于线程的开启,有三种方法:
(1)匿名内部类创建线程
(2)自定义类继承 Thread
(3)自定义类实现 Runnable接口
匿名内部类:
Thread thread = new Thread(){
@Override
public void run(){
...
}
};
thread.start(); //线程启动的唯一方法
自定义子类继承Thread:
需要自定义一个子类继承Thread,开启线程
class MyThread extends Thread{
//自定义属性
...
@Override
public void run(){
...
}
public static void main(String[] args){
new MyThread().start();
}
}
自定义类实现Runnable接口:
class MyRun implentments Runnable{
//自定义属性
...
@Overrride
public void run(){
...
}
public static void main(String[] args){
new Thread(new Myrun()).start();
/*或者
Runnable ru = new MyRun();
Thread thread = new Thread(ru);
thread.start();
*/
}
}
java中主要用到的两种方法:一种继承Thread ;一种实现Runnable接口
extends Thread implements Runnable
其中Thread是Runnable接口的子类,Runnable可以实现资源的共享,
而Thread方法却只能继承一个父类,所以Runnable的范围比Thread广。