java多线程编程

来源:互联网 发布:java如何防止sql注入 编辑:程序博客网 时间:2024/05/16 15:01

 多线程编程首先需要掌握几个概念:

进程:进程就是一个正在执行的程序(比如我们常说的QQ.exe,我们可以再任务管理器中看到进程)

线程:在一个进程中正在执行的程序(比如我们同时打开的QQ聊天窗口,就一回个线程)。一个进程中可以有多个线程。

线程的几种状态: 线程的生命周期:

                           在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 
                     第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态new Thread。 

                     第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前                                           线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。就绪状态就是线程处于等待执行的状                                            态runnable

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

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

                     第五是死亡状态。如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方                                           法 令其进入就绪,dead

说到这里就需要 提下:精灵线程也叫守护线程。守护线程是在后在运行的线程.比如java的垃圾回收器。如果非守护线程全部执行完成之后,守护线程将停止运行。










0 0