• 20165105 第八周学习总结


     第十二章学习总结

    进程与线程:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。进程是程序的一次动态执行过程;线程是比进程更小的执行单位

       区别:
              (1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元
              (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。
              (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束
              (4)线程是轻两级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的
              (5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源
              (6)线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志
     

    线程的状态与生命周期

    • Java语言使用Thread类及其子类的对象来表示线程,完整的生命周期要经历一下状态:
      1. 新建
      2. 运行:必须调用start()方法通知JVM才会运行
      3. 中断: 四种原因中断
      4. 死亡:原因有二,一为正常运行结束;二为线程被强制提前结束,即强制run()方法结束。
    • 常用方法
      • start();
      • run(),在线程没有结束run()之前,不要再让线程调用start()方法,否则将发生IllegalThreadStateException异常
      • sleep(int millsecond)必须在try-catch语句块中调用sleep方法
      • isAlive();
      • currentThread()返回当前正在使用CPU资源的线程
      • interrupt();
    • 线程同步机制:当一个线程A使用synchronized方法时,时就必须等待,知道线程A使用完synchronized方法
    • 不可以在非同步方法中使用wait(),notify(),notifyAll()
    • A在运行期间使用Join()联合B,那么A线程立刻终端执行,一直等待B执行结束,A再重新排队等待CPU资源
    • AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面

    代码托管:https://gitee.com/BESTI-IS-JAVA-2018/besti-Java20165105

  • 相关阅读:
    CSS 内外边距
    CSS 边框
    android chrome this account already exists on your device
    linux s s r client ubuntu kali
    rEFInd 美化 windows
    sogou opensuse
    Ping 虚拟机 超时
    python3 批量自动下载对应用户 github上的项目 或者 starts 的项目
    materialize 样例
    opensuse input methods
  • 原文地址:https://www.cnblogs.com/y454030212/p/8910778.html
Copyright © 2020-2023  润新知