11 2019 档案

摘要:restful是一种架构风格,其核心是面向资源,更简单;而webService底层SOAP协议,主要核心是面向活动;两个都是通过web请求调用接口 RESTful是什么: 首先要了解什么是REST,REST就是(REpresentational State Transfer单词太长记不住就对了)是一 阅读全文
posted @ 2019-11-22 18:31 别动我的猫 阅读(5599) 评论(0) 推荐(0) 编辑
摘要:1. 多线程控制类 为了保证多线程的三个特性,Java引入了很多线程控制机制,下面介绍其中常用的几种: l ThreadLocal l 原子类 l Lock类 l Volatile关键字 1.1. ThreadLocal 1.1.1. 作用 ThreadLocal提供线程局部变量,即为使用相同变量的 阅读全文
posted @ 2019-11-21 22:56 别动我的猫 阅读(1045) 评论(0) 推荐(0) 编辑
摘要:1. Java内存模型 Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 1.1. Java程序执行流程回顾 如图所示 首先J 阅读全文
posted @ 2019-11-21 10:08 别动我的猫 阅读(311) 评论(0) 推荐(0) 编辑
摘要:1.1. 为什么要线程通信 多个线程并发执行时,在默认情况下CPU是随机切换线程的,有时我们希望CPU按我们的规律执行线程,此时就需要线程之间协调通信。 1.2. 线程通讯方式 线程间通信常用方式如下: l 休眠唤醒方式: Object的wait、notify、notifyAll Condition 阅读全文
posted @ 2019-11-21 10:02 别动我的猫 阅读(404) 评论(0) 推荐(0) 编辑
摘要:1.1. 什么是死锁 多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力。然而,并发执行也带来了新的问题--死锁。 所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 1.2. 死锁产生的必要条件 以下这四个条件是死锁的必要条件,只要系统发 阅读全文
posted @ 2019-11-21 09:26 别动我的猫 阅读(732) 评论(0) 推荐(0) 编辑
摘要:1.1. 什么是线程安全 如果有多个线程同时运行同一个实现了Runnable接口的类,程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的;反之,则是线程不安全的。 1.2. 问题演示 为了演示线程安全问题,我们采用多线程模拟多个窗口同时售卖《肥潘大战猪八 阅读全文
posted @ 2019-11-20 21:56 别动我的猫 阅读(1140) 评论(0) 推荐(0) 编辑
摘要:1. 线程生命周期 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。 1.1. 新建 l new关键字创建了一个线程之后,该线程就处于新建状态 l JVM为线程分配内存,初始化成员变量值 1.2. 就绪 l 当线程对象调用了star 阅读全文
posted @ 2019-11-20 10:11 别动我的猫 阅读(374) 评论(0) 推荐(0) 编辑
摘要:1. 什么是并发与并行 要想学习多线程,必须先理解什么是并发与并行 并行:指两个或多个事件在同一时刻发生(同时发生)。 并发:指两个或多个事件在同一个时间段内发生。 2. 什么是进程、线程 进程: 进程是正在运行的程序的实例。 进程是线程的容器,即一个进程中可以开启多个线程。 比如打开一个浏览器、打 阅读全文
posted @ 2019-11-20 10:01 别动我的猫 阅读(1380) 评论(0) 推荐(1) 编辑
摘要:1 Spring Cloud简介 1.1 简介 Spring Cloud项目的官方网址:https://projects.spring.io/spring-cloud/ Spring Cloud并不是一个项目,而是一组项目的集合.在Spring Cloud中包含了很多的子项目.每一个子项目都是一种微 阅读全文
posted @ 2019-11-19 18:32 别动我的猫 阅读(1079) 评论(0) 推荐(0) 编辑
摘要:分库分区分表概念 分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的 分表 就是把一张数据量很大的表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。表名可以按照某种业务hash进行映射。单表数据量大 阅读全文
posted @ 2019-11-18 18:25 别动我的猫 阅读(856) 评论(0) 推荐(0) 编辑
摘要:JUnit简介 JUnit 是用于编写和运行可重复的自动化测试的开源测试框架,这样可以保证我们的代码按预期工作。JUnit 可广泛用于工业和作为支架(从命令行)或IDE(如 IDEA)内单独的 Java 程序。主要是用于后台的方法测试,避免重复的启动项目。 断言测试预期结果。测试功能共享通用的测试数 阅读全文
posted @ 2019-11-18 17:51 别动我的猫 阅读(436) 评论(0) 推荐(0) 编辑
摘要://0.开始事务 begin;/begin work;/start transaction; (三者选一就可以) //1.查询出商品信息 select status from table where id=1 for update; //2.根据商品信息生成订单 insert into table1 阅读全文
posted @ 2019-11-18 11:41 别动我的猫 阅读(398) 评论(0) 推荐(0) 编辑
摘要:知识点汇总 一、死锁 1.1 竞争条件与临界区 1.2 死锁检测与防止 1.3 产生条件 互斥 请求并持有 非剥夺 循环等待 二、线程的状态与转换 NEW:创建 RUNNABLE:可运行 REDAY:就绪态 RUNNING:运行态 BLOCKED:获取锁失败进入BLOCKED状态,获取锁时进入RED 阅读全文
posted @ 2019-11-05 20:38 别动我的猫 阅读(866) 评论(0) 推荐(0) 编辑
摘要:知识点汇总 一、JVM内存模型 栈:也叫方法栈,存储局部变量表,动态链接,方法出口等信息,调用方法执行入栈,方法返回执行出栈。 本地方法栈:与方法栈类似,区别是执行native方法使用的是本地方法栈,执行java方法使用的是方法栈。 (注:native方法即使用native关键字修饰的java方法, 阅读全文
posted @ 2019-11-05 20:08 别动我的猫 阅读(440) 评论(0) 推荐(0) 编辑
摘要:前边我们已经学习了四种分布式事务解决方案,2PC、TCC、可靠消息最终一致性、最大努力通知,每种解决方案我们通过案例开发进行学习,本章节我们结合互联网金融项目中的业务场景,来进行分布式事务解决方案可行性分析。 7.1.系统介绍 7.1.1.P2P介绍 P2P金融又叫P2P信贷。其中P2P是 peer 阅读全文
posted @ 2019-11-05 16:12 别动我的猫 阅读(1728) 评论(0) 推荐(1) 编辑
摘要:6.1.什么是最大努力通知 最大努力通知也是一种解决分布式事务的方案,下边是一个是充值的例子: 交互流程: 1、账户系统调用充值系统接口 2、充值系统完成支付处理向账户系统发起充值结果通知,若通知失败,则充值系统按策略进行重复通知 3、账户系统接收到充值结果通知修改充值状态。 4、账户系统未接收到通 阅读全文
posted @ 2019-11-05 15:55 别动我的猫 阅读(5355) 评论(3) 推荐(1) 编辑
摘要:5.1.什么是可靠消息最终一致性事务 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图: 事务发起方(消息生产方)将消息发给消息 阅读全文
posted @ 2019-11-05 15:22 别动我的猫 阅读(5532) 评论(0) 推荐(5) 编辑
摘要:1.基础概念 1.1.什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。 明白上述例子,再来看事务的定义: 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动 阅读全文
posted @ 2019-11-01 17:19 别动我的猫 阅读(607) 评论(0) 推荐(0) 编辑