20165232 第八周学习总结

第八周学习总结

教材内容学习

第十二章:JAVA多线程机制
  • 进程与线程
  1. 进程是程序的一次动态执行过程
  2. 线程不是进程,是比进程更小的执行单位,一个进程可产生多个线程
  • JAVA中的线程
  1. JAVA中的多线程机制:多线程指一个应用程序总是从主类的main方法开始执行,发现main方法后,会启动一个线程,这个线程就叫主线程,执行main方法
  2. 线程的状态和生命周期:

(1)新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。

(2)运行 :线程必须调用start()方法(从父类继承的方法)通知JVM,这样JVM就会知道又有一个新一个线程排队等候切换了。一旦轮到它来享用CPU资源时,此线程的就可以脱离创建它的主线程独立开始自己的生命周期了。

(3)中断:
VM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态;线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状;线程使用CPU资源期间,执行了wait()方法;线程使用CPU资源期间,执行某个操作进入阻塞状态。

(4)死亡 :处于死亡状态的线程不具有继续运行的能力。线程释放了实体。

  • 线程同步:在处理线程同步时,要做的第一件事就是要把修改数据的方法用关键字synchronized来修饰。
    所谓线程同步就是若干个线程都需要使用一个synchronized修饰的方法。
  • 协调同步线程
  1. wait() 方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。
  2. notifyAll() 方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则。
  3. notify() 方法只是通知处于等待中的线程的某一个结束等待。
  • GUI线程:当JAVA程序包含图形用户界面(GUI)时,JAVA虚拟机在运行应用程序时会自动启动更多线程,其中AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面。

代码托管

image

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 20篇 400小时
第一周 13/13 1/1 17/17
第二周 408/408 2/2 18/18
第三周 962/962 1/1 22/22
第四周 1350/1350 1/1 19/19
第五周 1361/1361 1/1 20/20
第六周 2515/2515 1/1 20/20
第七周 583/583 1/1 20/20
第八周 973/973 1/1 19/20
原文地址:https://www.cnblogs.com/heyanda/p/8899807.html