JAVA多线程
多线程理解:在以进程为单位的操作系统中,一个进程是一个包含有自身地址的程序,每一个独立执行的程序都称为进程。操作系统会为每个进程分配一段使用CPU的时间(这点在学习操作系统时也讲过,称为CPU时间片),CPU在该段时间内执行某个进程,当前进程在该段时间执行,当该执行下一个时间片时跳转执行另一个进程,因为CPU跳转和处理速度是十分快的,所以在我们看来这些进程好像是在同时执行。
单线程是让CPU执行完成一个程序时再去执行下一个程序,但是如果遇到一个进程需要同时执行多段代码时,就需要多线程来执行。
Java中主要提供两中方式实现线程,分别为继承java.lang.Thread类与实现java.lang.Runnable接口。
1.继承Thread类
Thread类是java.lang包中的一个类,从该类中实例化的对象表示线程,每启动一个新线程都需要建立Thread实例。Thread类中常用的两个构造方法:
public Thread():创建一个新的线程对象。
Public Thread(String Name):创建一个名称为Name的线程对象。
继承Thread类创建一个新的线程的语法如下:
public class Thread extends Thread{
}
完成线程真正功能的代码放在类的run()方法中,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread类中的start()方法执行线程,也就是调用run()方法。
Thread对象需要一个任务来执行,任务是指线程在启动时执行的工作,该工作被写在run()方法中。run()方法必须使用如下格式:
public void run(){
}
在main方法中,使线程执行需要调用Thread类中的start()方法,stead()方法调用被覆盖的run()方法,如果不调用,线程将不会启动。
2.实现Runnable接口
当程序需要继承其他类(非Thread类),而且还要使该程序实现多线程,可以通过Runnable接口实现。
实现Runnable接口的语法:
public class Thread extends Object implements Runnable
该类中的构造方法:
public Thread(Runnable target)
public Thread(Runnable target,String name)
使用Runnable接口启动新的线程步骤:
1.建立Runnable对象;
2.使用参数为Runnable对象的构造方法创建Thread实例;
3.调用start()方法启动线程。