秒杀---使用乐观锁实现或cache实现

概念秒杀系统的特点 新品上市 价格低廉 市场造势 大幅推广 指定时间开售 瞬时售空 读多写少 秒杀系统难点 高并发、负载压力大 竞争资源是有限的 对其他业务的影响 提防“黄牛党” 秒杀系统应用场景 商品抢购 群红包 优惠卷领取 抢火车票 在线预约 技术维度对秒杀系统的分析 —— 架构原则技术维度对...

2017-09-12 13:58:16

阅读数 2464

评论数 0

事件驱动

事件驱动模型事件驱动模型要素(what) 事件 事件源(生产者) 注册中心(事件通道) 侦听器(接受者) 事件驱动模型示意图 观察者模式观察者设计模式涉及到两种角色:主题(Subject )和观察者(Observer ) 事件驱动编程应用场景 js页面开发 Zookeeper开发 GUI...

2017-09-08 17:00:54

阅读数 166

评论数 0

手写数据库连接池

概述不使用连接池的缺点: tcp连接三次握手消耗时间 消耗内存严重 使用池化思想, 达到连接的可复用, 节省时间和资源代码连接池接口package jdbcPool; public interface IPool { //返回我们自己封装的连接对象 PooledConnection...

2017-09-06 11:39:49

阅读数 418

评论数 0

MySQL性能优化之索引优化

什么是优化? 合理安排资源、调整系统参数使MySQL运行更快、更节省资源。 优化是多方面的,包括查询优化、更新优化、服务器优化等很多方面。没有特定方式特定的方法,总是要具体场景,具体分析,但是我们要掌握基本的优化手段。 原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。 数据库性能参数 我们可...

2017-08-30 14:30:59

阅读数 207

评论数 0

观察者模式

案例 宝宝睡觉, 爸爸在一旁观察, 宝宝醒来后, 爸爸给宝宝喂食 代码(第一版) package design.observer;/** * @ClassName: Child * @Description:小孩类 */ public class Child implements Runna...

2017-08-29 14:27:52

阅读数 131

评论数 0

手写SpringMVC框架

springmvc在项目中的作用 处理请求,把请求分发到不同的类和方法中 ioc 依赖注入,创建实例。配置的方式和annotation的方式,今天实现annotation的方式 aop 动态代理,事物控制,让程序员只专注于写自己的业务代码 步骤 定义包结构 com.annotatio...

2017-08-28 16:38:07

阅读数 224

评论数 0

redis主从

关系型数据库和NOSQL的比较关系型数据库的优势 保持数据的一致性(事务处理) 可以进行Join等复杂查询 其中能够保持数据的一致性是关系型数据库的最大优势 关系型数据库的不足 大量数据的写入处理需要等待 为有数据更新的表做索引或表结构(schema)变更, 共享锁–读锁,排他锁–写锁需要等待 字...

2017-08-28 11:06:39

阅读数 87

评论数 0

SpringAOP神秘面纱之动态代理

1、写代码的原则 开闭原则 开闭原则就是说对扩展开放,对修改关闭。 2、静态代理 以找对象为例子讲解静态代理 张三写代码、玩游戏没空找对象 张三他爹着急,年龄大了,想抱孙子了。张三他爹拿着张三的照片(持有张...

2017-08-25 13:37:57

阅读数 111

评论数 0

MySQL学习随记---触发器

概念 (1) 触发器是一个特殊的存储过程, 他是MySQL在insert, update, delete 的时候自动执行的代码块 (2) 触发器必须定义在特定的表上 (3)自动执行, 不能直接调用 作用: 监视某种情况并触发某种操作 触发器的思路: 监视 it_order 表, 如果 it...

2017-08-24 18:31:27

阅读数 99

评论数 0

阻塞队列ArrayBlockingQueue

队列包含固定长度队列和不固定长度队列ArrayBlockingQueue固定长度的阻塞队列 只有put()和take()方法才具有阻塞功能

2017-08-23 15:22:29

阅读数 84

评论数 0

Exchanger

用于实现两个人(线程)之间的数据交换, 每个人(线程)在完成一定的事务后想与对方交换数据, 第一个先拿出数据的人(线程)将一直等待第二个人(线程)拿着数据到来时, 才能交换数据, 例如毒品交易—哈哈

2017-08-23 14:51:41

阅读数 72

评论数 0

CyclicBarrier和CountDownLatch

CyclicBarrier CyclicBarrier初始化时规定一个数目,然后计算调用了CyclicBarrier.await()进入等待的线程数。当线程数达到了这个数目时,所有进入等待状态的线程被唤醒并继续。 CyclicBarrier就象它名字的意思一样,可看成是个障碍,所有的线程必须到...

2017-08-22 18:59:45

阅读数 66

评论数 0

Semaphore实现信号灯

Semaphore可以维护当前访问自身的线程个数, 并提供了同步机制. 使用Semaphore可以控制同时访问资源的线程个数, 例如实现一个文件允许的并发访问数 Semaphore实现的功能就类似厕所有5个坑, 假如有设个人要上厕所, 那么同时能有多少个人去上厕所呢? 同时只能有5个人能够占用, ...

2017-08-22 17:01:57

阅读数 81

评论数 0

java性能优化

性能优化 1. 减少gc的压力, gc 线程是一个优先级比较低的线程, 他是一个守护线程(服务于主线程), 回收我们的堆内存 2. 尽量避免我们的new操作 总结 避免对象创建和GC 对象使用完成后进行置空 1、String, StringBuffer, StringBuilder String...

2017-08-19 14:23:00

阅读数 64

评论数 0

HashMap那些事

1. 什么是hash 它是一个任意长度的二进制值通过一个映射关系(哈希算法---相当于大学里面的学号的一个映射规则)转换成一个固定长度的二进制值(哈希值---相当于我们大学里面的学号) 任意长度的二进制值 和 固定长度的二进制值 是一个一一对应关系 固定长度的二进制值就相当于一个任意...

2017-08-19 11:24:09

阅读数 76

评论数 0

通过注解实现通用导出Excel

http://blog.csdn.net/u013132051/article/details/64921585

2017-08-15 13:51:03

阅读数 111

评论数 0

30 个java编程技巧(最佳实践的初学者)

http://www.envicloud.cn/pages/news/235.html#4

2017-08-06 23:02:04

阅读数 178

评论数 0

Lock&Condition实现线程同步通信

Lock比传统线程模型中的synchronized方式更加面向对象, 与生活中的锁类似, 锁本身应该是一个对象. 两个线程执行的代码片段要实现同步互斥的效果, 谈么必须用一个Lock对象. 锁是在代表要操作的资源的类的内部方法中, 而不是线程代码中! ReentrantLock(重入锁) ...

2017-08-04 18:41:37

阅读数 96

评论数 0

Callable和Future的应用

Future取得的结果类型和Callable返回的结果类型必须一致, 这是通过泛型来实现的 Callable要采用ExecutorService的submit方法提交, 返回的future对象可以取消任务 代码 package mutithread.threadpool; import...

2017-08-04 17:38:28

阅读数 93

评论数 0

线程池

线程池的概念与Executors类的应用 创建固定大小的线程池 创建缓存线程池 创建单一线程池(线程死掉会重新启动) 代码 package mutithread.threadpool; import java.util.concurrent.ExecutorService; imp...

2017-08-04 16:45:36

阅读数 90

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭