摘要: 一、FAFS电梯设计 这是第一次使用java多线程,主要的问题主要集中在两个方面 1、共享资源的数据同步 2、整体架构 先考虑第一个问题: 数据同步的问题显然可以使用synchronized解决,也就是经典的生产者消费者模型。 但是由于初次接触,对锁机制理解不清,我还探索了一种不那么好的方法——vo 阅读全文
posted @ 2019-04-23 12:09 thunderZ 阅读(494) 评论(0) 推荐(0) 编辑
摘要: OO UML总结暨课程总结 一、架构分析 两次UML解析程序,主要是递进式的,第一次解析了类图,第二次在类图基础上,增加检查规则和顺序图及状态图。 总体架构思路主要有五点: 1、尽量还原图本身的结构(组装) 2、分类(状态图、顺序图、状态图) 3、元素与关系分离 4、对同一类element进行合并 阅读全文
posted @ 2019-06-24 09:02 thunderZ 阅读(268) 评论(0) 推荐(0) 编辑
摘要: JML语言理论基础 JML是对java代码进行规格抽象的一种表达手段。 面向对象的重要原则就是过程性的思考应该尽可能地推迟。而JML可以帮助我们去靠近这个原则。其通过一些逻辑符号等表示一个方法是干什么的,却并不关心它的实现,帮助你更好的用面向对象的思想去实现代码。 JML应用工具链 使用JML编译器 阅读全文
posted @ 2019-05-22 10:21 thunderZ 阅读(252) 评论(0) 推荐(0) 编辑
摘要: What is volatile? 一次偶然的机会(java多线程电梯作业寻求多个进程分享变量的方法),接触到了volatile,因此我查阅了相关的材料,对这部分做了一些了解,在这里和大家分享一下。 首先,我们先来聊一聊几个概念 1、What is reorder 编译器和JVM通过改变程序的处理顺 阅读全文
posted @ 2019-04-02 23:40 thunderZ 阅读(127) 评论(0) 推荐(2) 编辑
摘要: JAVA多线程学习笔记(1) 由于笔者使用markdown格式书写,后续copy到blog可能存在格式不美观的问题,本文的.mk文件已经上传到个人的github,会进行同步更新。github传送门 一、创建新进程 由于这部分比较基础,这里不过多赘述,主要以代码呈现 1、java.lang.Threa 阅读全文
posted @ 2019-04-02 23:37 thunderZ 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 从C、DS、计组一路折磨过来, 几乎都在采用过程化、函数式的编程思想。初接触面向对象的项目开发,经过了三周的对多项式求导问题的迭代开发,经历了设计、coding、测评环节,算是对面向对象有了一定的认识,这个过程总结了一些经验,在这里希望和大家一起share,欢迎大家给我提意见。 一、关于代码架构 1 阅读全文
posted @ 2019-03-25 23:20 thunderZ 阅读(669) 评论(0) 推荐(0) 编辑