BOY1024

科技改变生活
128√e980=someone

标签关键词

关于 性能优化 的文章共有18条

系统架构篇

Shopify的闪购限流解决方案

阅读(2325)评论(0)

闪购,或者秒杀,对于现代互联网用户来说已经是一件司空见惯的事情。双十一、各大节庆日、限量供应的紧俏产品上线,大量用户在同一时间涌入网站抢购,突如其来的流量给网站带来了很大压力。那么各大电商网站是如何处理流量爆发的? Shopify是加拿大著名的电子商务软件解决方案提供商,来自Shopify性能工程团队的Emil Stolarsky分享了Sh...

Java技术篇

并发(八)——Fork/Join框架介绍

阅读(1934)评论(0)

1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这...

Java技术篇

并发(七)——Java中的阻塞队列

阅读(1904)评论(0)

1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者...

Java技术篇

并发(六)ConcurrentLinkedQueue的实现原理分析

阅读(2015)评论(0)

1.    引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让...

Java技术篇

并发(五)原子操作的实现原理

阅读(2105)评论(0)

1    引言 原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为”不可被中断的一个或一系列操作” 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。 2 ...

Java技术篇

并发(三)Java线程池的分析和使用

阅读(2045)评论(0)

1.    引言 合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池...

Java技术篇

并发(二)Java SE1.6中的Synchronized

阅读(1877)评论(0)

1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 ...

Java技术篇

并发(一)深入分析Volatile的实现原理

阅读(1870)评论(0)

引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上In...

系统架构篇

大型网站系统架构的演化

阅读(2001)评论(0)

前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务...