多线程
进程:一个独立执行的程序;正在运行的程序。
线程:一个进程中有多个执行单元同时运行,一个执行单元即一个线程。
Java提供两种多线程实现方式:1)继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码;
局限性:由于Java中只支持单继承,一个类一旦继承了某个父类就无法再继承Thread类。
为了克服这种弊端,Thread类提供了另外一个构造方法Thread(Runnable target),其中Runnable是一个接口,它只有一个run()方法。当通过该构造方法创建线程对象时,只需为该方法传递一个实现了Runnable接口的实例对象。Thread(Runnable target,String name)方法在创建线程对象的同时指定线程的名称。
2)实现java.lang.Runnable接口,同样在run()方法中实现运行在线程上的代码。适合多个相同程序代码去处理同一个资源的情况;可避免Java的单继承带来的局限性。
后台线程。前台线程死亡后,JVM会通知后台线程,后台线程执行一会儿结束,说明进程中只有后台线程运行时,进程就会结束。将某个线程设置为后台线程的方法setDaemon(true)。
线程的生命周期及状态转换。五个阶段,新建状态(New),就绪状态(Runnable),运行状态(Running),阻塞状态(Blocked),死亡状态(Terminated)。通过一些操作,可使线程在不同状态之间转换。
|