zoukankan      html  css  js  c++  java
  • 20145123刘森明《Java程序设计》第六周学习总结

    教材学习内容总结

    十章

    串流设计的概念 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。数据就好比水,串流就像水管,通过水管的衔接,水由一端流向另一端。从应用程序角度来看,若要将数据从来源取出,可以使用输入串流,要将数据写入目的地,可以使用输出串流。在Java中,输入串流代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStream实例。无论数据源和目的为何,只要取的InputStream或者OutputStream的实例,操作输入输出的方法是一致的。 

    十一章

    之前学习的各种实例都是单线程的,即程序从main()进入后只有一个流程,但是在设计时候可以根据需要拥有多个流程,就是多线程(Multi-thread)程序

    1. Thread和Runable:

    JVM即一台虚拟机,只有主线程的CPU,如果想增加CPU就得创建thread实例,CPU执行的进入点,定义在Runnable的run()方法中

    撰写多线程程序可以操作Runnable接口,也可以继承Thread类,重新定义run()方法,但操作Runnable接口会使得程序更富弹性

          2.  线程生命周期

     Daemon线程:在所有的非Daemon线程结束时,JVM就会自动终止

     基本状态图:start—>runnable—>(blocked)—>running—>dead , Thread.sleep()、wait()阻断、输入输出完成等都会让线程进入blocked状态,当某线程进入Blocked,最好让另一线程进入running状态,避免cpu空闲下来,是改进效能的方式之一。 

    join():安插线程,在A执行的时候插入B,等B完成后在进行A(可以指join()的时间,如join(1000)即为加入线程最多执行1000毫秒)

          3.  等待和通知

    wait():指定等待排班时间

    notify():通知加入排班

    notifyall():锁定竞争,通知所有等待中的线程参与排班

          4.  并行API

    Lock、ReadWriteLock和Condition:提供类似synchronized、wait()、notify()、notifyall()的作用以及更多高级功能

    Executor :Executor接口可以将Runnable的指定与实际如何执行分离

    Future与Callable搭配使用

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

    敲书上327页的代码的时候,出现了和书上不一样的结果,询问同学也知道了是某两行代码出现了问题。然后及时的修改了。

    学习进度条

      代码行数 博客数量 学习时间 学习心得
    目标 4000 30 300  
    第五周 1470 6 68  
    第六周 700/2170 2/8 15/83  
     
  • 相关阅读:
    Big Data 應用:第二季(4~6月)台湾地区Game APP 变动分布趋势图
    大数据应用:五大地区喜新厌旧游戏APP类别之比较与分析
    Big Data應用:以"玩家意見"之數據分析來探討何謂"健康型線上遊戲"(上)
    Example:PanGu分詞系統-批次匯入新詞
    C#数据类型02--结构
    C#数据类型01--数组
    C#基础知识点
    陌生Layout属性
    LinearLayout(线性布局)
    Android--入门常识
  • 原文地址:https://www.cnblogs.com/Lexington/p/5376336.html
Copyright © 2011-2022 走看看