首页 > 代码库 > java-多线程编程<三>

java-多线程编程<三>

1.进程

        每个独立进行的程序称为进程,即“正在进行的程序”,进程都有自己独立的内存空间,如果某个进程去访问其他进程的内存空间,则有可能是病毒来的,操作系统的多任务其实是cpu以非常小的时间间隔交替执行多个程序,给人同时进行多个程序的感觉。

2.线程

       1.线程是轻量级的进程。

       2.线程没有独立的内存空间。

       3.线程是由进程产生,寄生于进程。

       4.一个进程可以有多个线程(就是我们所说的多线程编程)

3.线程的状态

      1.新建状态(new):新创建了一个线程对象。

      2.就绪状态(Runnable):对象创建后,其他线程调用该对象的start( )方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。

       3.运行状态(Running):就绪状态的线程获取CPU,执行程序代码

       4.阻塞状态(Blocked):线程因为某种原因放弃了CPU的使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况三种。

          a.等待阻塞:运行的线程执行wait( )方法,JVM把该线程放入等待池中

          b.同步阻塞:运行的线程在获取对象的同步锁时,如该同步锁被其他线程占用,则JVM把该线程放入锁池中

          c.其他阻塞: 运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

         5.死亡状态(Dead):线程执行完了,或因异常退出run()方法。结束生命周期。

黑马程序员-多线程编程三 - 654184754 - 654184754的博客

java-多线程编程<三>