教材内容学习总结

  进程与线程:线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程。线程间可以共享进程中的某些内存单元(包括代码与数据),线程的中断与恢复可以更加节省系统的开销。

  JAVA虚拟机中的线程调度器负责管理线程,在采用时间片的系统中,每个线程都有机会获得CPU的使用权。当线程使用CPU资源的时间到时后,即使线程没有完成自己的全部操作,JAVA调度器也会中断当前线程的执行,把CPU的使用权切换给下一个排队等待的线程,当前线程将等待CPU资源的下一个轮回,然后从中断处继续执行。

  Java的多线程机制:Java语言的一大特性点就是内置对多线程的支持。Java虚拟机快速地把控制从一个线程切换到另一个线程。这些线程将被轮流执行,使得每个线程都有机会使用CPU资源。

  线程同步同步是指几个线程都需要调用同一个同步方法(用synchronized修饰的方法)。一个线程在使用同步方法时,可能根据问题的需要,必须使用wait()方法暂时让出CPU的使用权,以便其他线程使用这个同步方法。其他线程在使用这个同步方法时如果不需要等待,那么它用完这个同步方法的同时,应当执行notifuAll()方法通知所有由于使用这个同步方法而处于等待的线程结束等待。

  线程的状态与生命周期

  一个新的线程完整生命周期中的四个周期:

  1.新建

  2.运行

  3.中断

  4.死亡

   线程中断有四个原因:JVM将CPU资源从当前线程切换给其他线程,本线程处于中断状态。

                                       线程使用CPU资源期间,执行了sleep(int  millsecond)方法,使当前线程进入休眠状态。

                                       执行了wait()方法,使得当前线程进入等待状态。

                                       执行某个操作进入阻塞状态,这状态下线程不能进入排队队列。