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

    20165233 2017-2018-2 《Java程序设计》第八周学习总结

    教材学习内容总结

    • 基础:Java中的线程,Thread类与线程的创建

      - 线程是比进程更小的单位。
      - JVM(Java虚拟机)中的线程调度器负责管理线程,在采用时间片的系统中,每个线程都会有机会获得CPU的使用权。
      - 线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有这个线程,此线程必须调用`start()`方法通知JVM。
      
    • 重点(难点):线程同步,协调同步的线程

      - 线程同步是指几个线程都需要调用同一个同步方法。
      - 一个线程在使用同步方法时,可能根据问题的需要,必须使用`wait()`方法暂时让出CPU的使用权。
      - 其他线程在使用这个同步方法时如果不需要等待,那么它用完这个同步方法的同时,应当执行`notifyAll()`方法通知所有由于使用这个同步方法而处于等待的线程结束等待。
      
    • 了解:线程的常用方法,线程联合,GUI线程

    • 实用:计数器线程

    教材学习中的问题和解决过程

    • 问题1:能否在一个Java应用程序出现2个以上的无限循环呢?
    • 问题1解决方案:如果不使用多线程技术,是无法解决上述问题的。因为第1个代码在while语句里无限循环,那么第2个while语句中的代码是永远没有机会执行的。如果能在主线程中创建两个线程,那么这两个while语句将会被轮流执行。
    • 问题2:为什么程序必须在子类中重写父类的run()方法呢?
    • 问题2解决方案:其原因是Thread类中的run()方法没有具体内容,程序要在Thread类的子类中重写run()方法来覆盖父类的run()方法。
    • 问题3:时间片是什么?
    • 问题3解决方案:时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。

    代码调试中的问题和解决过程

    • 问题1:教材362页的Example12_1.java中,主线程执行到第1次循环,输出了
    主人1
    

    ,主线程为什么没有将这个for循环语句执行完呢?

    • 问题1解决方案:由于主线程在使用CPU资源时,已经执行了
    speakElephant.start();
    speakCar.start();
    

    此时,JVM已经知道有3个线程了。因而,在main线程使用CPU资源执行到for语句的第1次循环之后,JVM就将CPU资源切换给speakCar线程了。

    • 问题2:教材366页Example12_2.java中,为什么将
    speakCar.start();
    

    去掉,或者改为

    carTarget.run();
    

    时,JVM认为程序中只有两个线程呢?

    • 问题2解决方案:start()方法时新建一个线程的方法,若去掉,则视为没有此线程;在carTarget.run();运行过程中可能被中断,变成主线程的代码了,JVM只在主线程与Elephant线程中切换。

    代码托管

    上周考试错题总结

    • 错题1:接口RowSet继承了接口ResultSet,可以调用RowSet中的方法update来填充其数据区。

    原因:可以调用RowSet中的方法update来填充其数据区,把update填成了populate。对于RowSet中的方法作用掌握得不清楚。

    理解情况:已了解该方法。

    • 错题2:executeUpdate返回的类型是int,代表的含义是受影响的记录。true

    原因:对于executeUpdate不清楚。

    理解情况:已了解该方法。

    • 错题3:下列属于数据操作语言的是:A.insert和B.update

    原因:对于数据操作语言了解不清楚。将select也选做了数据操作语言。

    理解情况:已掌握数据操作语言的基本内容。

    其他(感悟、思考等,可选)

    本周学习内容中12章的内容,对于线程的理解更加深入了。在学习前,对于线程、进程的概念十分混淆,现在也更加明晰了。在学习教材内容的过程中,线程更接近电脑一些应用程序之类的运行,就不像前几章十分直白的程序语句,只是针对于一个解决课本题目的程序,本章更利于解决实际的程序运行的问题,更加抽象也更加实用。

  • 相关阅读:
    MFC 按钮
    读写文件
    遍历一个文件夹所有文件
    Java的运行机制
    selenium学习笔记——高级操作
    selenium学习笔记——定位元素
    selenium学习笔记——介绍&环境准备
    搭建安卓系统的测试环境
    Linux下Java环境的安装与配置
    Linux的目录结构介绍
  • 原文地址:https://www.cnblogs.com/minchan0624/p/8903669.html
Copyright © 2011-2022 走看看