摘要: 前言 如上一篇文章所述,Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整计算机的模型,因此,这个模型自然会包含一个内存模型—又称为Java内存模型。 如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由 阅读全文
posted @ 2020-07-13 15:38 猿灯塔 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 工具 IDE为idea16 JDK环境为1.8 gradle构建,版本:2.14.1 Mysql版本为5.5.27 Tomcat版本为7.0.52 流程图绘制(xmind) 建模分析软件PowerDesigner16.5 数据库工具MySQLWorkBench,版本:6.3.7build 本期目标 阅读全文
posted @ 2020-07-11 18:13 猿灯塔 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 前言 在并发编程中,需要解决两个关键问题: 线程之间如何通信; 线程之间如何同步; 线程通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。 在消息 阅读全文
posted @ 2020-07-11 15:22 猿灯塔 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 前言 上一节讲了Synchronized关键词的原理与优化分析,而配合Synchronized使用的另外两个关键词wait¬ify是本章讲解的重点。最简单的东西,往往包含了最复杂的实现,因为需要为上层的存在提供一个稳定的基础,Object作为Java中所有对象的基类,其存在的价值不言而喻,其中wai 阅读全文
posted @ 2020-07-10 20:40 猿灯塔 阅读(974) 评论(1) 推荐(0) 编辑
摘要: 今天这一篇,主要是关于上一张的编码实现。为什么我要单路分离出来?因为做事要分先后,明白道理,执行才能确定无误。 wordpress做的文章存储 在上次我们已经看过了wordpress的数据库模型(有朋友问我什么是逆向分析,拿着别人的产品逆向推导这就是逆向分析),我们可以很清楚的看到数据库关于文章存储 阅读全文
posted @ 2020-07-10 17:17 猿灯塔 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 前言 记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是 阅读全文
posted @ 2020-07-09 17:49 猿灯塔 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 这一章我们主要介绍文章系统。毕竟博客系统的核心就是文章的发布和阅读。闲话不多说,老规矩走起来。 工具 IDE为idea16 JDK环境为1.8 gradle构建,版本:2.14.1 Mysql版本为5.5.27 Tomcat版本为7.0.52 流程图绘制(xmind) 建模分析软件PowerDesi 阅读全文
posted @ 2020-07-09 15:24 猿灯塔 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-07-09 10:24 猿灯塔 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 前言 为何要使用Java线程同步?Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时,将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。 但其并发编程的根本,就是使线程间进行正确的通信。其中两个比 阅读全文
posted @ 2020-07-08 17:44 猿灯塔 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 前言 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,这种资源可以是:一个变量、一个对象、一个文件等。特别注意两点: 简单的说,如果你的代码在单线程下执行和在多线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。那么,当进行多线程编程时 阅读全文
posted @ 2020-07-08 14:59 猿灯塔 阅读(217) 评论(0) 推荐(0) 编辑