201711671212 《java程序设计》第十一周学习总结

教材学习内容总结

本周学习内容:第十二章 :Java多线程机制

  1. 现代操作系统可以让计算机系统中的多个进程轮流使用CPU资源,甚至可以让多个进程共享操作系统所管理的资源。
  2. 线程不是进程,是比进程更小的执行单位,且行为与进程很像;没有进程就不会有线程。
  3. Java语言支持多线程。
  4. 计算机在任何给定的时刻只能执行所有线程中的一个;Java虚拟机能够快速地把控制从一个线程切换到另一个线程。
  5. Java总是从主类的main方法开始执行,执行完main方法后JVM会等其他所有线程都结束之后,才结束Java程序。
  6. 线程有4种状态:新建、运行、中断、死亡。
  7. 引起线程中断的原因:

    (1)JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU使用权处于中断状态。

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

    (3)线程使用CPU资源期间,执行了wait()方法,是当前线程进入等待状态。

    (4)线程使用CPU资源期间,执行某个操作进入阻塞状态。

  8. 程序要在Thread类的子类中重写run()方法来覆盖父类的run()方法,并且规定线程的具体操作;在线程没有结束run()方法之前,不要让线程再调用start()方法。
  9. JVM的线程调度器会使高优先级的线程能始终运行。但是在实际编程中不提倡使用线程的优先级来保证算法的正确执行。
  10. 使用Thread类创建线程对象:Thread(Runnable target)。
  11. 目标对象与线程的关系:完全解耦:目标对象通过获得线程的名字来确定是哪个线程正在占用CPU资源;弱耦合:组合线程,将目标对象作为自己的成员,可以获得线程对象的引用。
  12. 线程同步:若干个线程都需要使用一个synchronized(同步)修饰的方法,多个线程调用该synchronized方法必须遵守同步机制。
  13. 协调同步的线程:wait()、notify()、notifyAll()都是类中的final方法,被所有的类继承且不允许重写的方法。
  14. 不可以在非同步方法中使用wait()、notify()、notifyAll()。
  15. 线程联合、GUO线程、计时器线程、守护线程。

参考资料

  • Java 2 实用教程(第5版)

猜你喜欢

转载自blog.csdn.net/Lum_0813/article/details/84504199