自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张伟光

好玩的不是技术,好玩的是用技术玩转业务

  • 博客(10)
  • 收藏
  • 关注

原创 【并发编程】--AQS实现原理

AQSlock之所以能实现线程安全的锁,主要的核心是AQS(AbstractQueuedSynchronizer),AQS提供了一个FIFO队列,可以用来实现锁以及需要同步功能的框架。称为AQS。AQS使用依靠继承来完成,子类通过继承自AQS并实现所需的方法来管理同步状态。ReentrantLock、CountDownLatch。AQS分为两种:独占和共享。独占锁模式下,每次只能有...

2019-06-30 21:19:22 179

原创 【并发编程】synchronized底层实现原理

synchronized原子性、可见性、有序性应用加锁的三种方式:1、普通同步方法,锁的是实例对象2、静态同步方法,锁的是当前类的对象。3、同步方法块,锁的是synchronized括号里的对象synchronized的字节码指令:对于同步块的实现使用了monitorenter和monitorexit指令,前面我 们在讲JMM的时候,提到过这两个指令,他们隐式的执行...

2019-06-23 23:09:14 167

原创 【并发编程】--volatile底层实现原理

1、volatile解决可见性使用缓存一致性。防止指令重排序使用内存屏障,保证有序性。有volatile变量修饰的共享变量,编译时会有lock前缀。volatile实现原则:·Lock前缀指令会引起处理器缓存回写到内存。(总线锁、缓存锁)·一个处理器的缓存回写到内存会导致其他处理器的缓存无效。(MESI、嗅探)缓存一致性协议:处理器上有一套完整的协议,来保证 Cac...

2019-06-09 19:35:40 293

原创 继承中黑狗与狗的关系

所有的黑狗都是狗,在new黑狗的时候首先走狗的构造方法,在走狗的构造方法时,用this依旧是黑狗,如果在狗中写方法时,要用狗做形参,是为了让所有的黑狗,白狗,黄狗都用这个方法。...

2019-06-15 16:39:02 191

原创 rmi运行机制

【RMI】远程方法调用,纯java的RPC框架,在RMI中最核心的为远程对象。A发布了服务,生成stub对象,B拿到stub对象,调用对象的方法进行传输。【远程对象发布】 远程对象必须实现 UnicastRemoteObject,这样才能保证客户端访问获得远程对象时,该远程对象会把自身的一个拷贝以 Socket 形式传输给客户端,客户端获得的拷贝称为“stub”,而服务器端...

2019-06-15 11:51:50 467

原创 深入理解设计模式

【前言】 做了几个可大可小的项目,或多或少的接触了代码复用,代码解耦,代码高扩展等一系列优秀的代码的实用性,提高了代码的可读性,可扩展性,维护成本,复杂的业务问题。而我们生活上也是如此,如果一件事情,总要不断重复去做,虽然我们可以把事情做好,但是总是杂乱无章,这不免会浪费我们的时间成本,对生活深度分析,并且用代码实现这种思想,不断思考,思想与代码并驾齐驱,灵活运用设计模式,理清应...

2019-06-08 14:55:27 603

原创 Java秒杀实战(十二) 优化秒杀业务流程

优化后的秒杀业务流程【总结】 秒杀实现的优化思路,能缓存就去redis缓存起来,然后放到队列中,让队列去处理。

2019-06-02 15:32:52 1048 1

原创 Java秒杀实战(十一) RabbitMQ四种常见应用模式

先把数据放到路由上。【Direct 模式】添加配置类package com.wings.seckill.config; import org.springframework.amqp.core.Queue;import org.springframework.context.annotation.Bean;import org.springframework.context....

2019-06-02 11:29:26 647 1

原创 Java秒杀实战(十) SpringBoot框架集成RabbitMQ

【安装RabbitMQ及其相关依赖】下载erlanghttps://www.erlang.org/downloads下载rabbitMQhttp://www.rabbitmq.com/download.html安装相关依赖yum install ncurses-develtar xf otp_src_21.0.tar.gzcd otp_src_21.0...

2019-06-02 10:29:23 355 1

原创 Java秒杀实战(九)页面优化技术(Redis缓存页面,url,对象)

【页面缓存】把页面的数据放到reids里面,然后从redis取出后直接返回html @RequestMapping(value = "/to_list", produces = "text/html") @ResponseBody public String toList(HttpServletRequest request, HttpServletResponse response...

2019-06-02 09:43:15 449 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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