• 高并发场景下System.currentTimeMillis()的性能问题的优化 以及SnowFlakeIdWorker高性能ID生成器

    时间:2023-12-14 17:02:38

    package xxx;import java.sql.Timestamp;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicLong;/** * 高并发场景下System.currentTimeMillis...

  • 【转】记录PHP、MySQL在高并发场景下产生的一次事故

    时间:2023-12-14 17:01:53

    看了一篇网友日志,感觉工作中值得借鉴,原文如下:事故描述在一次项目中,上线了一新功能之后,陆陆续续的有客服向我们反应,有用户的个别道具数量高达42亿,但是当时一直没有到证据表示这是,确实存在,并且直觉告诉我们,这是不可能的,就一直没有在意,直到后来真的发现了一个用户确实是42亿,当时我们整个公司都震...

  • Qunar机票技术部就有一个全年很关键的一个指标:搜索缓存命中率,当时已经做到了>99.7%。再往后,每提高0.1%,优化难度成指数级增长了。哪怕是千分之一,也直接影响用户体验,影响每天上万张机票的销售额。 在高并发场景下,提供了保证线程安全的对象、方法。比如经典的ConcurrentHashMap,它比起HashMap,有更小粒度的锁,并发读写性能更好。线程安全的StringBuilder取代S

    时间:2023-12-14 16:55:10

    Qunar机票技术部就有一个全年很关键的一个指标:搜索缓存命中率,当时已经做到了>99.7%。再往后,每提高0.1%,优化难度成指数级增长了。哪怕是千分之一,也直接影响用户体验,影响每天上万张机票的销售额。在高并发场景下,提供了保证线程安全的对象、方法。比如经典的ConcurrentHashM...

  • J2ee高并发情况下监听器

    时间:2023-12-13 20:27:09

    引言:在高并发下限制最大并发次数,在web.xml中用过滤器设置參数(最大并发数),并设置其它相关參数。具体见代码。第一步:配置web.xml配置,不懂的地方解释一下:參数50通过參数名maxConcurrent用在filter的实现类中获取,filter-class就是写的实现类,url-patt...

  • java处理高并发高负载类网站的优化方法

    时间:2023-12-11 20:50:39

    java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据)一:高并发高负载类网站关注点之数据库没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个my...

  • 多线程模式下高并发的环境中唯一确保单例模式---DLC双端锁

    时间:2023-12-11 19:37:24

    DLC双端锁,CAS,ABA问题一.什么是DLC双端锁?有什么用处?为了解决在多线程模式下,高并发的环境中,唯一确保单例模式只能生成一个实例多线程环境中,单例模式会因为指令重排和线程竞争的原因会出现多个对象public class DLCDemo { private static DLCDe...

  • php 高并发下数据同步的问题

    时间:2023-12-11 19:24:49

    1.加锁缺点:降低性能优点:减少代码逻辑复杂度(题主现在这样超过1w条就删数据的逻辑,感觉看起来就点糟糕啊,如果整个系统一复杂,这样的来回写数据,你确定你的逻辑还维护得下去?建议题主梳理一下代码的逻辑流)2.队列(redis/各类mq等)缺点:引入其他组件,增加系统复杂度,降低稳定性。优点:能够将w...

  • websocket(三) 进阶!netty框架实现websocket达到高并发

    时间:2023-12-10 20:30:45

    引言:在前面两篇文章中,我们对原生websocket进行了了解,且用demo来简单的讲解了其用法。但是在实际项目中,那样的用法是不可取的,理由是tomcat对高并发的支持不怎么好,特别是tomcat9之前,可以测试发现websocket连接达到的数量很低,且容易断开。所以有现在的第三篇,对webso...

  • tornado解决高并发的初步认识牵扯出的一些问题

    时间:2023-12-09 22:13:41

    #!/bin/env python# -*- coding:utf-8 -*-import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webimport tornado.genfrom to...

  • java高并发系列 - 第25天:掌握JUC中的阻塞队列

    时间:2023-12-09 14:56:53

    这是java高并发系列第25篇文章。环境:jdk1.8。本文内容掌握Queue、BlockingQueue接口中常用的方法介绍6中阻塞队列,及相关场景示例重点掌握4种常用的阻塞队列Queue接口队列是一种先进先出(FIFO)的数据结构,java中用Queue接口来表示队列。Queue接口中定义了6个...

  • java高并发系列 - 第13天:JUC中的Condition对象

    时间:2023-12-09 14:53:10

    本文目标:synchronized中实现线程等待和唤醒Condition简介及常用方法介绍及相关示例使用Condition实现生产者消费者使用Condition实现同步阻塞队列Object对象中的wait(),notify()方法,用于线程等待和唤醒等待中的线程,大家应该比较熟悉,想再次了解的朋友可...

  • java高并发系列 - 第24天:ThreadLocal、InheritableThreadLocal(通俗易懂)

    时间:2023-12-09 14:51:55

    java高并发系列第24篇文章。环境:jdk1.8。本文内容需要解决的问题介绍ThreadLocal介绍InheritableThreadLocal需要解决的问题我们还是以解决问题的方式来引出ThreadLocal、InheritableThreadLocal,这样印象会深刻一些。目前java开发w...

  • java高并发系列 - 第32天:高并发中计数器的实现方式有哪些?

    时间:2023-12-09 14:38:14

    这是java高并发系列第32篇文章。java环境:jdk1.8。本文主要内容4种方式实现计数器功能,对比其性能介绍LongAdder介绍LongAccumulator需求:一个jvm中实现一个计数器功能,需保证多线程情况下数据正确性。我们来模拟50个线程,每个线程对计数器递增100万次,最终结果应该...

  • java高并发系列 - 第23天:JUC中原子类,一篇就够了

    时间:2023-12-09 14:35:24

    这是java高并发系列第23篇文章,环境:jdk1.8。本文主要内容JUC中的原子类介绍介绍基本类型原子类介绍数组类型原子类介绍引用类型原子类介绍对象属性修改相关原子类预备知识JUC中的原子类都是都是依靠volatile、CAS、Unsafe类配合来实现的,需要了解的请移步:volatile与Jav...

  • java高并发系列 - 第27天:实战篇,接口性能成倍提升,让同事刮目相看,现学现用

    时间:2023-12-09 14:35:49

    这是java高并发系列第27篇文章。开发环境:jdk1.8。案例讲解电商app都有用过吧,商品详情页,需要给他们提供一个接口获取商品相关信息:商品基本信息(名称、价格、库存、会员价格等)商品图片列表商品描述信息(描述信息一般是由富文本编辑的大文本信息)数据库中我们用了3张表存储上面的信息:商品基本信...

  • java高并发系列【共34篇,强力建议观看】

    时间:2023-12-09 14:34:26

    第1天:必须知道的几个概念第2天:并发级别第3天:有关并行的两个重要定律第4天:JMM相关的一些概念第5天:深入理解进程和线程第6天:线程的基本操作第7天:volatile与Java内存模型第8天:线程组第9天:用户线程和守护线程第10天:线程安全和synchronized关键字第11天:线程中断的...

  • java高并发系列 - 第31天:获取线程执行结果,这6种方法你都知道?

    时间:2023-12-09 14:31:26

    这是java高并发系列第31篇。环境:jdk1.8。java高并发系列已经学了不少东西了,本篇文章,我们用前面学的知识来实现一个需求:在一个线程中需要获取其他线程的执行结果,能想到几种方式?各有什么优缺点?结合这个需求,我们使用6种方式,来对之前学过的知识点做一个回顾,加深记忆。方式1:Thread...

  • JAVA高并发程序设计笔记

    时间:2023-12-09 13:51:48

    第二章 Java并行程序基础1、join()的本质是让调用线程wait()在当前线程的对象上2、Thread.yiedl()会使当前线程让出CPU3、volatile保证可见性,无法保证原子性(如i++,JAVA高并发程序设计P51)4、synchronized作用是实现线程间的同步是没一次只有一个...

  • 《实战Java高并发程序设计》读书笔记四

    时间:2023-12-09 13:46:21

    第四章 锁的优化及注意事项1、锁性能的几点建议减小锁持有时间:系统持有锁时间越长锁竞争程度就越激烈,只对需要同步的方法加锁,可以减小锁持有时间进而提高锁性能。减少锁的持有时间有助于降低锁冲突的可能性,进而提高锁的并发能力。减小锁粒度:减小锁粒度就是指缩小锁定对象的范围,从而减小锁冲突的可能性,进而提...

  • 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray

    时间:2023-12-09 13:41:50

    除了提供基本数据类型外,JDK还为我们准备了数组等复合结构。当前可用的原子数组有:AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray,分别表示整数数组、long型数组和普通的对象数组。这里以AtomicIntegerArray为例,展示原子...