Bootstrap
再不解决延迟不当,小心你的内存被打爆

​​​​​​​​摘要:这是在具体代码中发现的不当延迟的问题,极端情况下可能把内存打爆。

架构师训练营第7周作业

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

并发高?可能是编译优化引发有序性问题

​​摘要:CPU为了对程序进行优化,会对程序的指令进行重排序,此时程序的执行顺序和代码的编写顺序不一定一致,这就可能会引起有序性问题。

C/C++学习:C++并发与多线程

线程传参/成员函数作线程函数 POSIX线程

一文带你熟知ForkJoin

摘要:ForkJoin将复杂的计算当做一个任务,而分解的多个计算则是当做一个个子任务来并行执行。

重大事故!IO问题引发线上20台机器同时崩溃

几年前的一个下午,公司里码农们正在安静地敲着代码,突然很多人的手机同时“哔哔”地响了起来。本来以为发工资了,都挺高兴!打开一看,原来是告警短信

是什么在背后支撑起“带货一哥”李佳琦?

直播电商企业的网站和APP要想承受住蜂拥而来用户给平台负载造成的极大压力,从容应对暴增的访问流量,准确发现系统性能瓶颈,业界的普遍做法,是使用科学和有标准可循的云压测手段,提前模拟高并发情形,有备无患测试应用系统的性能极限。

我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。

这次的文章从JDK的J.U.C包下的ConcurrentLinkedQueue队列的一个BUG讲起。jetty框架里面的线程池用到了这个队列,导致了内存泄漏。

线程池 ThreadPoolExecutor 原理及源码笔记

前面在学习 JUC 源码时,很多代码举例中都使用了线程池 ThreadPoolExecutor ,并且在工作中也经常用到线程池,所以现在就一步一步看看,线程池的源码,了解其背后的核心原理。

Go 语言快速入门指南:Go 并发初识

大型程序通常由许多较小的子程序组成。 例如,Web 服务器处理来自 Web 浏览器的请求并提供 HTML 网页作为响应。 每个请求都像一个小程序一样被处理。对于像这样的程序,最理想的是能够在同一时间运行它们的小型组件(在 网络服务器的情况下,处理多个请求)。

Go 语言快速入门指南: Go 并发互斥锁

互斥是并发编程中最关键的概念之一。当我们使用 goruntine 和channels 进行并发编程时,如果两个 goruntine 尝试同时访问同一个内存位置的同一数据会发生竞争,有时候会产生意想不到的结果,通常很难调试,不符合日常要求,出现错误甚至很难修复。生活场景假

在nodejs中创建child process

nodejs的main event loop是单线程的,nodejs本身也维护着Worker Pool用来处理一些耗时的操作,我们还可以通过使用nodejs提供的worker_threads来手动创建新的线程来执行自己的任务。

灵活运用分布式锁解决数据重复插入问题

分布式系统不可避免会遇到一些并发场景下的数据冲突,例如读写不一致、数据重复插入等。本文介绍一次典型的在分布式环境下,运用分布式锁解决数据重复插入问题的案例,详细地剖析了造成问题的原因和解决方案的探索。

synchronized 加锁 this 和 class 的区别!

synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为“Java 内置锁”,由此可见其地位之高。然而 synchronized 却有着多种用法,当它修饰不同对象时,其意义也是不同的,下面我们一起来看。​

ReentrantLock 中的 4 个坑!

JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局。JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我们锁的实现又多了一种显式锁 Lock。

synchronized优化手段:锁膨胀、锁消除、锁粗化和自适应自旋锁...

synchronized 在 JDK 1.5 时性能是比较低的,然而在后续的版本中经过各种优化迭代,它的性能也得到了前所未有的提升,上一篇中我们谈到了锁膨胀对 synchronized 性能的提升,然而它也只是“众多” synchronized 性能优化方案中的一种,那么我们本文就来盘点一

一文带你更方便的控制 goroutine

虽然 go func() 已经很方便,但是有几个问题: 如果协程异常退出,无法追踪异常栈 某个异常请求触发panic,应该做故障隔离,而不是整个进程退出,容易被攻击 我们看看 go-zero 提供了哪些额外选择

死磕Java并发编程(9):无界线程安全队列ConcurrentLinkedQueue源码解析

这篇文章理解起来不难,相比于 ConcurrentHashMap 比较简单,因为不涉及扩容以及数据迁移等操作,相信你读完一定会有收获的。

面试官:啥?SynchronousQueue是钟点房?

继续讲架构师大刘的故事

死磕Java并发编程(7):读写锁 ReentrantReadWriteLock 源码解析

这是《死磕Java并发编程》系列的第7篇文章 我们在一起来看看 读写锁 ReentrantReadWriteLock 的源码分析,基于Java8。

死磕Java并发编程(7):读写锁 ReentrantReadWriteLock 源码解析

这是《死磕Java并发编程》系列的第7篇文章 我们在一起来看看 读写锁 ReentrantReadWriteLock 的源码分析,基于Java8。

干货分享丨从MPG 线程模型,探讨Go语言的并发程序

摘要:Go 语言的并发特性是其一大亮点,今天我们来带着大家一起看看如何使用 Go 更好地开发并发程序。

小白必看,通俗易懂的LockSupport

Java并发编程系列第三篇LockSupport,上一篇Synchronized文章中有提过,不推荐读者们使用Object的wait、notify、notifyAll等函数做多线程间的通信协同,使用LockSupport会是更好的选择,本篇就来谈谈LockSupport。

Golang 中的并发限制与超时控制

Golang 中的并发限制与超时控制

解密诡异并发问题的幕后黑手:可见性问题

​​摘要:可见性问题还是由CPU的缓存导致的,而缓存导致的可见性问题是导致诸多诡异的并发编程问题的“幕后黑手”之一。

再不解决延迟不当,小心你的内存被打爆

​​​​​​​​摘要:这是在具体代码中发现的不当延迟的问题,极端情况下可能把内存打爆。

阿里巴巴2021年最新开源十亿级Java高并发系统设计手册

众所周知,出现了高并发,就代表着你的流量是十分巨大的,而设计高并发系统的魅力就在于我们可以发挥我们所学的知识对“对抗”大流量的冲击,从而给我们的用户一个更好的体验!我们设计的这些方案好似能操纵流量,让流量更加平稳得被系统中的服务和组件处理!

内存屏障的来历

CPU是如何保证读写顺序的?

并发编程-原子操作CAS

假定有两个操作A 和B,如果从执行A 的线程来看,当另一个线程执行B 时,要么将B 全部执行完,要么完全不执行B,那么A 和B 对彼此来说是原子的。

一文带你熟知ForkJoin

摘要:ForkJoin将复杂的计算当做一个任务,而分解的多个计算则是当做一个个子任务来并行执行。

动态高并发时为什么推荐ReentrantLock而不是Synchronized?

    Synchronized 和 ReentrantLock 大家应该都不陌生了,作为java中最常用的本地锁,最初版本中 ReentrantLock 的性能是远远强于 Synchronized 的,后续java在一次次的版本迭代中 对 Synchronized 进行了大量的优化,直到 jdk1.6 之后,两种锁的性能

在nodejs中创建child process

nodejs的main event loop是单线程的,nodejs本身也维护着Worker Pool用来处理一些耗时的操作,我们还可以通过使用nodejs提供的worker_threads来手动创建新的线程来执行自己的任务。

并发编程系列:线上问题定位

并发编程,问题定位排查的基本手段,和一个示例分析。

java安全编码指南之:Thread API调用规则

java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢?

死磕Java并发编程(4):happens-before是什么?JMM最最核心的概念,看完你就懂了

happens-before是JMM最核心的概念。对应Java程序员来说,理解happens-before是理解JMM的关键。

其他标签