zoukankan      html  css  js  c++  java
  • 20175322 《Java程序设计》第十周学习总结

    20175322 《Java程序设计》第十周学习总结

    教材学习内容总结

    • 进程与线程
      • 线程:一个进程在执行中,可以产生多个执行线索,每条线索也有产生、存在和消亡的过程
      • 进程:程序的一次动态执行过程中,从代码加载、执行至执行完毕的一个完整过程
    • Java中的线程
      • 多线程:一个应用程序中同时存在几个执行体,按几条不同的执行线索共同工作的情况
      • 线程的周期:线程使用Thread类及其子类对象来表示线程
      • 主线程:负责执行main方法
      • 完整的生命周期:新建、运行、中断、死亡
      • 新建:新建时就有了内存空间
      • 死亡:执行完了run()方法中全部语句。或被提前强制性终止
    • Thread类与线程的创建
      • Thread类直接创建线程对象。Thread(Runnable target)(该构造方法中的参数是一个Runnable类型的接口)
      • Thread类的子类不能再扩展其他的类
      • 编写Thread类的子类时,需要重写父类的run()方法
      • 目标对象与线程的关系
        • 目标对象和线程完全解耦。目标对象没有组合线程对象.目标对象经常需要通过获得线程的名字(因为无法获得线程对象的引用)以便确定是哪个线程正
          在占用CPU资源,即被JVM正在执行的线程
        • 目标对象组合线程(弱耦合)。目标对象可以组合线程.目标对象类组合线程对象时, 目标对象可以通过获得线程对象的引用
    • 线程的常用方法
      • start(); 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命
        周期了
      • run();Thread类的run()方法与Runnable接口中的run()方法的功能和作用相同,都用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程
        序不得引用的方法
      • sleep(int millsecond);优先级高的线程可以在它的run()方法中调用sleep方法来使自己放弃CPU资源,休眠一段时间
      • isAlive(); 线程处于“新建”状态时,线程调用isAlive()方法返回false。在线程的run()方法结束之前,即没有进入死亡状态之前,线程调用isAlive()方法
        返回true
      • currentThread();该方法是Thread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程
      • interrupt();一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法“吵醒”自己,即导致休眠的线程发生InterruptedException异常,从而结束休
        眠,重新排队等待CPU资源
    • 线程同步
      • 线程同步机制:当一个线程使用synchronized方法时,其他线程想使用这个synchronized方法时就必须等待,直到前一个线程使用完该synchronized
      • 若干个线程都需要使用一个synchronized(同步)修饰的方法,即程序中的若干个线程都需要使用一个方法,而这个方法用synchronized给予了修饰,多个
        线程调用synchronized方法必须遵守同步机制
    • 协调同步的线程
      • wait()方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法
      • notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先
        继续”的原则
      • notify()方法只是通知处于等待中的线程的某一个结束等待
    • 线程联合
      • 一个线程A在占有CPU资源期间,可以让其它线程调用join()和本线程联合,如:B.join(); 称A在运行期间联合了B
    • GUI线程
    • 计时器线程
    • 守护线程

    代码托管

    感悟

    • 本章内容较多,线程知识点有点难理解运用,之后还需要不断结合例子练习
    • 做实验发现对于上周的数据库知识掌握不够,运用生疏,需要翻书查找资料巩固

    参考资料

  • 相关阅读:
    MYSQL数据损坏修复方法
    MYSQL数据损坏修复方法
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    NLog日志框架使用探究
    NLog日志框架使用探究
    SPFA算法 O(kE)
    codevs 1077 多源最短路
    code vs 2602 最短路径问题
  • 原文地址:https://www.cnblogs.com/zyh5322/p/10812752.html
Copyright © 2011-2022 走看看