Java 并发编程
Java 并发编程
wusd1256
我的博客:https://wushidong125.github.io/archives/
展开
-
高并发请求和抢购的解决方案
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web转载 2018-01-17 20:00:50 · 5341 阅读 · 0 评论 -
高并发的常见应对方案
高并发就是在同一时刻,有很多请求同时访问。在在高发场景下,一般比较关系的几个指标:QPS:每秒钟查询量,广义的,通常指指每秒请求数响应时间:从请求发出到收到响应花费的时间,例如:系统处理一个HTTP请求需要100ms,这个100ms就是系统的响应时间带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小 PV:综合浏览量(Page View),即页面浏览量或者点击量,通常关注在24小时内访问的原创 2018-01-17 19:45:15 · 240 阅读 · 0 评论 -
Java并发编程的艺术-第四章之Java并发基础
为什么要使用多线程Java天生就是多线程程序,看一简单的一个main() 方法的执行,其实是由mainx线程个其它的线程共同执行的。当然使用多线程有如下的好处: 1、利用更多的处理器核心 2、更快的响应速度,如将数据一致性不强的操作交给其它的线程去操作3、更好的编程模型线程简介一、线程优先级在线程执行过程中,线程优先级决定了需要分配处原创 2017-10-13 19:24:37 · 227 阅读 · 0 评论 -
多线程-锁优化
一、Synchronized同步锁的优化Synchronized 在JDK1.5 之前是JVM实现一种内置锁,是基于底层的操作系统的Mutex Lock 实现的,所以会带来用户态和内核态的切换问题。JDK1.6 对锁的升级优化:针对java对象头,引入了分级锁的机制。1、当一个线程获取锁时,首先对象锁将成为一个偏向锁,这样的优化了一个线程重复获取锁导致的用户态和系统内核态的切换问题。2、当...原创 2020-01-28 13:06:32 · 194 阅读 · 0 评论 -
Java8 新特性LocalDate 线程安全的时间处理类
Java8 新特性中推出了日期处理类LocalDate,实在是太方便了,主要用到是下面的3个类。java.time.LocalDate ->只对年月日做出处理java.time.LocalTime ->只对时分秒纳秒做出处理java.time.LocalDateTime ->同时可以处理年月日和时分秒优点:除了使用起来更加简单和灵活,主要是传统的时期处理类Da...原创 2019-11-06 14:23:11 · 4591 阅读 · 0 评论 -
多线程解决耗时的调用
多线程处理耗时操作的demo。耗时操作包括DB查询和请求接口。import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.FutureTask;import java.util....原创 2019-11-05 12:42:47 · 553 阅读 · 0 评论 -
【Java并发编程】并发编程大合集
为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章 【Java并发编程】实现多线程的两种方法 【Java并发编程】线程的中断 【Java并发编程】正确挂起、恢复、终止线程 【Java并发编程】守护线程和线程阻塞 【Java并发编程】Volatile关键字(上) 【Java并...转载 2018-03-01 12:34:00 · 211 阅读 · 0 评论 -
Java并发编程的艺术-第一章之并发编程的挑战
Java 的另外一个经典书籍之一《Java 并发编程的艺术》大家肯定也是看过的,今天开始我按照我的理解通俗的讲解这本书。首先并发编程的目的就是让程序跑的更快,但是并不是开启更多的线程就能让程序就能最大限度的并发执行,在实际的并发编程中,还会面临这很多的挑战,例如:上下文切换、死锁问题、硬件、软件的资源受限所带来的问题。1、1 上下文切换CPU通过给每个线程分配CPU时间片来执行多个线程原创 2017-10-05 10:54:03 · 259 阅读 · 0 评论 -
Java并发编程的艺术-第三章之Java内存模型
并发编程模型的关键问题在并发编程中,需要处理2个关键的问题:线程间如何通信和线程之间如何同步。线程之间的同通信机制有2种:共享内存和消息传递。同步:程序中用于控制不同线程间操作发生相对顺序的机制。 Java并发采用的是共享内存的模型,同步是显示进行的,就是程序必须显示指定(用synchronized、volatile、final)某个方法或某段代码需要在线程之间是互原创 2017-10-09 23:11:06 · 255 阅读 · 0 评论 -
Java并发编程的艺术-第二章之并发机制的底层实现原理
Java中的并发机制依赖于JVM的实现和CPU指令,接下来我们深入底层探索Java并发机制的实现原理。1、volatile Java中允许线程访问共享变量,为了保证共享变量能够一致的被更新,线程应该确保通过排他锁单独的获取这个变量。Java中就提供了volatile,如果一个字段被声明成volatile,在java线程内存模型确保所有的线程看到的这个变量的值都是一致的。vol原创 2017-10-06 15:49:29 · 304 阅读 · 0 评论