又一个可以写到简历的项目,嘎嘎强!

3 月 26 日
阅读 3 分钟
74
分布式IM即时通讯系统本质上就是对线上聊天和用户的管理,针对聊天本身来说,最核心的需求就是:发送文字、图片、文件、语音、视频、消息缓存、消息存储、消息未读、已读、撤回,离线消息、历史消息、单聊、群聊,多端同步,以及其他一些需求。
封面图

高考成绩都出来了,你的秒杀系统如何了?

2023-06-30
阅读 1 分钟
702
截止到目前,秒杀系统从需求立项、架构设计、技术选型、环境搭建、编码实现、极致缓存设计到扣减库存防超卖设计,已经完成16个大的篇章47篇文章。
封面图

如何通过项目更好的学习并发编程?

2023-04-25
阅读 4 分钟
668
今天,正式通知大家一件事情:在今后一段时间内,冰河会带着大家一起从零开始搭建并开发一套可支持瞬时百万流量的高并发秒杀系统,这里会涉及到很多互联网大厂开发过程中所使用的核心技术和架构设计模式,也有冰河在大厂工作过程中,自主研发和参与研发的企业级中间件技术。
封面图

《深入理解高并发编程:JDK核心技术》-冰河新书上市

2023-03-17
阅读 3 分钟
616
2022年6月我出版了“冰河技术丛书”之“深入理解高并发编程”系列的第1部作品——《深入理解高并发编程:核心原理与案例实战》,书中全面细致地介绍了高并发编程的基础知识、核心原理、实战案例和系统架构等内容,帮助读者从根本上理解并发编程出现各种诡异Bug问题的根源,并从原理与实战层面找到解决问题的方案。随后这本书被...
封面图

我发现买不起自己出版的图书了,这到底是咋回事?

2023-02-03
阅读 2 分钟
430
大家好,我是冰河~~这次我是真的有点买不起自己的书了!聊聊背景继出版《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》和《深入理解分布式事务:原理与实战》之后,冰河于2022年6月出版了《深入理解高并发编程:核心原理与案例实战》一书。随后又出版发行了一本繁体书《深入高平行開發:深...
封面图

InterruptedException异常会对并发编程产生哪些影响?

2022-11-25
阅读 3 分钟
1.2k
当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果!
封面图

【高并发】深度解析ScheduledThreadPoolExecutor类的源代码

2022-10-24
阅读 11 分钟
912
在【高并发专题】的专栏中,我们深度分析了ThreadPoolExecutor类的源代码,而ScheduledThreadPoolExecutor类是ThreadPoolExecutor类的子类。今天我们就来一起手撕ScheduledThreadPoolExecutor类的源代码。
封面图

【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例

2022-10-12
阅读 4 分钟
835
JDK 1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK 1.5之前,实现任务的周期性调度主要使用的是Timer类和TimerTask类。本文,就简单介绍下ScheduledThreadPoolExecutor类与Timer类的区别,ScheduledThreadPoolExecutor...
封面图

【高并发】通过源码深度解析ThreadPoolExecutor类是如何保证线程池正确运行的

2022-08-30
阅读 7 分钟
826
AtomicInteger类型的常量ctl是贯穿线程池整个生命周期的重要属性,它是一个原子类对象,主要用来保存线程的数量和线程池的状态,我们看下与这个属性相关的代码如下所示。
封面图

多年亿级流量下的高并发经验总结,我毫无保留的写在了这本书中

2022-06-17
阅读 3 分钟
1.3k
今天,给大家隆重的宣布一个好消息:继出版《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》和《深入理解分布式事务:原理与实战》之后,冰河的第4本书——《深入理解高并发编程:核心原理与案例实战》正式上市了。
封面图

【高并发】从源码角度分析创建线程池究竟有哪些方式

2022-05-26
阅读 8 分钟
1.2k
在Java的高并发领域,线程池一直是一个绕不开的话题。有些童鞋一直在使用线程池,但是,对于如何创建线程池仅仅停留在使用Executors工具类的方式,那么,创建线程池究竟存在哪几种方式呢?就让我们一起从创建线程池的源码来深入分析究竟有哪些方式可以创建线程池。
封面图

【高并发】深度解析线程池中那些重要的顶层接口和抽象类

2022-05-10
阅读 12 分钟
1.1k
在上一篇《【高并发】不得不说的线程池与ThreadPoolExecutor类浅析》一文中,从整体上介绍了Java的线程池。如果细细品味线程池的底层源码实现,你会发现整个线程池体系的设计是非常优雅的!这些代码的设计值得我们去细细品味和研究,从中学习优雅代码的设计规范,形成自己的设计思想,为我所用!哈哈,说多了,接下来,...
封面图

【高并发】不得不说的线程池与ThreadPoolExecutor类浅析

2022-04-21
阅读 4 分钟
1.7k
既然Java中支持以多线程的方式来执行相应的任务,但为什么在JDK1.5中又提供了线程池技术呢?这个问题大家自行脑补,多动脑,肯定没坏处,哈哈哈。。。
封面图

【高并发】两种异步模型与深度解析Future接口

2022-03-25
阅读 19 分钟
4.6k
本文有点长,但是满满的干货,以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小!
封面图

【高并发】深入解析Callable接口

2022-02-16
阅读 10 分钟
3.8k
在JDK 1.8中只声明有一个方法的接口为函数式接口,函数式接口可以使用@FunctionalInterface注解修饰,也可以不使用@FunctionalInterface注解修饰。只要一个接口中只包含有一个方法,那么,这个接口就是函数式接口。
封面图

【高并发】深入理解线程的执行顺序

2022-01-17
阅读 3 分钟
1.6k
最近经常有读者问我:冰河,线程到底是按照怎样的顺序执行的呀?为了同一回答大家的这个问题,今天我就单独写一篇文章吧。好了,不多说了,进入今天的正题。
封面图

【高并发】深入解析Callable接口

2021-11-07
阅读 10 分钟
1.4k
在JDK 1.8中只声明有一个方法的接口为函数式接口,函数式接口可以使用@FunctionalInterface注解修饰,也可以不使用@FunctionalInterface注解修饰。只要一个接口中只包含有一个方法,那么,这个接口就是函数式接口。
封面图

原来ReadWriteLock也能开发高性能缓存,看完我也能和面试官好好聊聊了!

2021-07-27
阅读 6 分钟
3.2k
在实际工作中,有一种非常普遍的并发场景:那就是读多写少的场景。在这种场景下,为了优化程序的性能,我们经常使用缓存来提高应用的访问性能。因为缓存非常适合使用在读多写少的场景中。而在并发场景中,Java SDK中提供了ReadWriteLock来满足读多写少的场景。本文我们就来说说使用ReadWriteLock如何实现一个通用的缓存...
封面图

Java中String到底占用多大的内存空间?

2021-02-26
阅读 3 分钟
5.4k
对于Java中的String类占用多大的内存空间这个问题,是最近面试中问的比较多的一个问题。很多小伙伴的回答的都不是很正确,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有说不知道的,更让人哭笑不得的是竟然还有人说是2的31次方。那如果真是这样的话,服务器的内存空间还放不下一个字符串呀!作为程...
封面图

【高并发】ReadWriteLock怎么和缓存扯上关系了?!

2021-01-22
阅读 6 分钟
1.3k
在实际工作中,有一种非常普遍的并发场景:那就是读多写少的场景。在这种场景下,为了优化程序的性能,我们经常使用缓存来提高应用的访问性能。因为缓存非常适合使用在读多写少的场景中。而在并发场景中,Java SDK中提供了ReadWriteLock来满足读多写少的场景。本文我们就来说说使用ReadWriteLock如何实现一个通用的缓存...
封面图

如果让你设计一个高并发的消息中间件,你会怎么做?

2021-01-18
阅读 2 分钟
1.7k
很多小伙伴去大厂面试,几乎都会遇到一些开放式的题目,这些开放式的题目没有固定的答案,但是它能够实实在在的体现面试者较为真实的系统设计能力和技术功底。如果你回答的比较完美,那么,通过这种开放式题目,就能够让你从众多的面试者中脱颖而出。今天,我们就一起来聊聊,去大厂面试时,一个较为常见的开放式题目:...
封面图

高并发场景下如何优化服务器的性能?

2021-01-17
阅读 4 分钟
2.9k
最近,有小伙伴在群里提问:Linux系统怎么设置tcp_nodelay参数?也有小伙伴说问我。那今天,我们就来根据这个问题来聊聊在高并发场景下如何优化服务器的性能这个话题。
封面图

我们该如何正确的中断一个线程的执行??

2020-12-22
阅读 4 分钟
894
当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果!今天,我们就以一个案例的形式,来为大家详细介绍下为何中断执行的线程不起作用。文章已收录到:[链接] 和 [链接]

并发编程中一种经典的分而治之的思想!!

2020-12-15
阅读 7 分钟
2.9k
在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据。有点像Hadoop中的MapReduce。ForkJoin是由JDK1.7之后提供的多线程并发处理框架。ForkJoin框架的基本思想是分而治之。什么是分而治之?分而治之就是将一...