一、教材学习内容总结

第十二章内容

  • 主要内容


  • 杂项
    • 线程同步:当一个线程A使用synchronized方法时,其他线程想用这个synchronized方法时就必须等待,直到线程A使用完该方法。例子:会计和出纳。(教材Example12_7.java)
    • 线程联合join():如果线程A在占有CPU资源期间一旦联合B线程,那么A线程立刻中断执行,一直等到它联合的线程B执行完毕,A线程在重新排队等待。(教材Example12_9.java)
    • 守护线程void setDaemon(boolean on):当程序中的所有用户线程都已经结束运行时,即使守护线程中的run方法还有需要执行的语句,守护线程也立刻结束执行。(教材Example12_13.java)

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

  • 问题1:对教材375页提出的要求观察输出结果,看似最后的答案都是一样的,虽然只是过程中的输出不同而已。


  • 解决方法:我在想这是不是只是巧合,刚刚好最后的答案一样而已。所以我手动执行自己设计的线程,果然输出不一样的结果,证明了会计和出纳这类的问题需要用synchronized,否则将会导致不可预料的后果。

  • 问题2:对教材中张飞买票这个例子的课后拓展进行验证。
  • 运行结果截图:


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

  • 对于Example12_1.java进行debug,更好的理解线程的内部运作。



  • 问题1:对于输出“狗喝水”,“猫喝水”,"剩7",“剩5”表示不能理解,甚至还出现“剩1”,“剩2”,难道水喝了还能变多??


  • 解决方法:对其线程进行debug,观察其运行过程。

  • 问题2:对于教材上Example12_5.java的运行结果没有问题,但是我在想如果每次创建完一个新的对象,然后令time=0,结果会不会一直隔三的赠加一条相同的时间。但是运行结果却跟我预料的不太一样,结果始终跟没有加time=0这句是一样的。
  • 解决方法:对其线程进行debug,观察其运行过程。

  • 我发现里面是有产生新对象的,但是为什么就是没有输出呢?这个问题我还是很疑惑。(未能解决)

四、代码托管

(https://gitee.com/xiannvyeye/test/tree/master/Code/chp12)



五、心得体会

  • 本周学习的章节我觉得比较抽象,其中后台运作的过程我们看不到,所以对运行结果感到很疑惑,我和小伙伴们花费了大量的时间去理解这个运行结果。
  • 后来我在想,能不能也来个调试什么的来看看线程内部的运行情况,结果发现调试之后思路就清晰了许多。最终算是比较清楚了掌握了本章的内容。

六、学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第九周 1255/6303 3/25 21/205
  • 计划学习时间:23小时

  • 实际学习时间:21小时

  • 改进情况:
    • 多看书,提高阅读速度、理解能力。
    • 合理安排时间,充分利用碎片时间。

七、参考资料

20175313 张黎仙《Java程序设计》第十周学习总结的更多相关文章

  1. 20145302张薇 《Java程序设计》第二周学习总结

    20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...

  2. 20145302张薇《Java程序设计》第九周学习总结

    20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...

  3. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  4. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

  5. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  6. 20175313 张黎仙《Java综合讲座》第十三周课堂测试总结

    目录 一.JAVA中两大类型 二.基本类型与类类型的相互转化 三.int与Integer之间的区别 四.String.StringBuffer.StringBuilder三者之间的区别 五.Array ...

  7. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...

  9. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  10. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

随机推荐

  1. LeetCode:626.换座位

    题目链接:https://leetcode-cn.com/problems/exchange-seats/ 题目 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们 ...

  2. Java 之 JDK9 对集合添加的优化

    通常,在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它. 实例化集合,几个 add方法调用,使得代码重复. Java 9,添加了几种集合工厂方法,更方便创建少量元素的集合. ...

  3. 用jq动态给导航菜单添加active

    点击后页面跳转到了新的链接,找到所有的li下的a标签,对其链接地址进行判断,如果和当前浏览器的地址一致,就认为是当前应该激活的菜单,添加active类,否则就取消. <ul class=&quo ...

  4. 2.Buffer 缓冲区

    /*缓冲区(Buffer)*/ Buffer 就像一个数组,可以保存多个相同类型的数据.根据数据类型不同(boolean 除外),有以下Buffer常用子类: /*ByteBuffer*/(常用) . ...

  5. 谁还不知道Java String的那点事

    String是我们平时接触最多的一种数据类型之一,不同语言有自己内部的实现,今日一起看下Java中String的内部实现. 常问问题 面试中常被提及的String问题 String为什么是Final的 ...

  6. pytorch训练模型的一些坑

    1. 图像读取 opencv的python和c++读取的图像结果不一致,是因为python和c++采用的opencv版本不一样,从而使用的解码库不同,导致读取的结果不同. 详细内容参考:https:/ ...

  7. pymysql 1064, 'You have an error in your SQL syntax; check the manual that corresponds to

    在python 连接mysql时,最近一直出现了 1064, 'You have an error in your SQL syntax; check the manual that correspo ...

  8. 文本三剑客之grep及正则表达式

    1.grep 1. 什么是grep.egrep和fgrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Glo ...

  9. 【2017-11-26】Linq表连接查询

    class Program { static void Main(string[] args) { //Linq创建的数据库上下文对象db DataClasses2DataContext db = n ...

  10. 剑指Offer编程题(python)——二叉树

    1.重建二叉树 """ 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4 ...