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

    20165329 《Java程序设计》第八周学习总结

    教材学习内容总结

    第十二章学习总结:JAVA多线程机制

    • 线程:线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有自身的产生、存在和消亡的过程。

    • 进程:进程是程序的一次动态执行过程,对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。

    • 主线程:该线程负责执行main方法。

    • 创建线程:用Thread的子类创建线程对象;直接使用Thread类创建线程对象,构造方法是Thread(Runnable target)。

    • 线程的常用方法:

    • start() 线程调用该方法将启动线程;

    • run() 用来定义线程对象被调度之后所执行的操作;

    • sleep(int millsecond) 使优先级别高的线程放弃CPU资源,休眠一段时间。必须在try-catch语句块中调用sleep方法;

    • isAlive() 线程处于“新建”状态时,线程调用isAlive()方法返回false。在线程的run()方法结束之前,即没有进入死亡状态之前,线程调用isAlive()方法返回true。当线程进入死亡状态后,线程调用方法isAlive(),此时的返回值为false。

    • wait()方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法

    • notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则

    • notify()方法只是通知处于等待中的线程的某一个结束等待
      线程联合:一个线程A在占有CPU资源期间,可以让其它线程调用join()和本线程联合AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面

    • B.join()
      若准备联合的B线程已经执行结束,则B.join()不会产生任何效果
      使用Timer类的方法start()启动计时器,即启动线程。使用Timer类的方法stop()停止计时器,即挂起线程,使用restart()重新启动计时器,即恢复线程
      守护线程:一个线程调用void setDaemon(boolean on)方法可以将自己设置成一个守护(Daemon)线程

    • thread.setDaemon(true);
      当程序中的所有用户线程都已结束运行时,即使守护线程的run方法中还有需要执行的语句,守护线程也立刻结束运行

    • GUI线程:当JAVA程序包含图形用户界面(GUI)时,JAVA虚拟机在运行应用程序时会自动启动更多线程,其中AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面。

    [代码托管]

    (statistics.sh脚本的运行结果截图)

  • 相关阅读:
    Some ArcGIS Tools
    Optimization Algorithms
    BPTT
    Markdown 简明语法
    【转载】softmax的log似然代价函数(求导过程)
    DP tricks and experiences
    Google Chrome Keyboard Shortcuts
    【转载】如何掌握所有的程序语言
    转 C++ 面向对象程序设计的基本特点
    leetcode 18. 4Sum
  • 原文地址:https://www.cnblogs.com/hjwzzj/p/8901886.html
Copyright © 2011-2022 走看看