java对多线程提供了内置。多线程就是让一个程序,创建多个线程,让它们做多个任务,充分利用CPU和时间,来做更多的事情。每一个线程都不是独立的,都位于进程上,因此所有非守护线程结束后进程才能结束。
每个线程都有生命周期,如下图:
新建状态:当new一个Thread的对象或子类的话,这个线程就处于新建状态。
就绪状态:start()一个Thread的对象或子类,进入就绪队列,等待被JVM调用。
运行状态:Thread的对象或子类获取到CPU资源,开始执行run()里的命令。
阻塞状态:Thread的对象或子类被挂起,将失去CPU资源,进入阻塞状态,这个时候当前线程就是被暂停的。
死亡状态:Thread的对象或子类的run()执行完毕,或被强行终止,该线程就进入死亡状态。
java有两种默认的方法实现多线程,为继承java.lang.Thread类,或者实现java.lang.Runnable接口。
实现Runnable接口(两种方法)
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
//code here
}
});
thread.start();
class thread implements Runnable {
@Override
public void run(){
//code here
}
}
Thread tHread = new Thread(new thread());
tHread.start();
class th implements Runnable{
@Override
public void run(){
//code here
}
public void start(){
new Thread(this).start();
}
}
th TH = new th();
TH.start();
继承Thread类:
class thread extends Thread{
@Override
public void run(){
//code here
}
}
thread th = new thread();
th.start();