标签:锁

Java

记一次找因redis使用不当导致应用卡死bug的过程 原 荐

10

xiaoli.he 发布于 2018-12-19

首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理。但是后来问题出现频率越来越频繁,越来越多的同事开始抱怨,于是感觉代码可能有问题,开始排查。 首先发现开发的本...

阅读(1)评论(0)赞 (0)

编程技术

随行付微服务测试之性能测试 原 荐

12

yeseng 发布于 2018-12-19

背景 传统性能测试更多的是以事务为核心,更多的是由单个或者多个事务构成业务场景进行压测。全链路压测指完全引入相关联的系统,尽量真实模拟线上硬件环境,更多的是以请求为核心,完全模拟真实请求流量,通过引流等方式进行场景的模拟进行压测,更多的适用于业务链路较长的交易。全链路一直是性能测...

阅读(2)评论(0)赞 (0)

Java

Java并发编程之锁机制之ReentrantReadWriteLock(读写锁)

4

邓龙华 发布于 2018-12-19

在前面的文章中,我们讲到了ReentrantLock(重入锁),接下来我们讲 ReentrantReadWriteLock(读写锁) ,该锁具备重入锁的 可重入性 、 可中断获取锁 等特征,但是与 ReentrantLock 不一样的是,在 ReentrantReadWriteL...

阅读(2)评论(0)赞 (0)

编程技术

随行付微服务测试之性能测试

11

xirruiqiang 发布于 2018-12-19

传统性能测试更多的是以事务为核心,更多的是由单个或者多个事务构成业务场景进行压测。全链路压测指完全引入相关联的系统,尽量真实模拟线上硬件环境,更多的是以请求为核心,完全模拟真实请求流量,通过引流等方式进行场景的模拟进行压测,更多的适用于业务链路较长的交易。全链路一直是性能测试中的...

阅读(2)评论(0)赞 (0)

Java

偏向锁状态转移原理

4

xiaoli.he 发布于 2018-12-18

当多个处理器同时处理的时候,通常需要处理互斥的问题。 一般的解决方式都会包含 acquire 和 release 这个两种操作,操作保证,一个线程在acquire执行之后,在它执行release之前,其它线程不能完成acquire操作。这个过程经常就涉及到锁。研究表明(L. La...

阅读(13)评论(0)赞 (0)

Java

Spring Boot+SQL/JPA实战悲观锁和乐观锁

11

yanxinchi 发布于 2018-12-18

最近在公司的业务上遇到了并发的问题,并且还是很常见的并发问题,算是低级的失误了。由于公司业务相对比较复杂且不适合公开,在此用一个很常见的业务来还原一下场景,同时介绍悲观锁和乐观锁是如何解决这类并发问题的。 公司业务就是最常见的“订单+账户”问题,在解决完公司问题后,转头一想,我的...

阅读(14)评论(0)赞 (0)

Java

Flutter Jenkins打包

27

hellas 发布于 2018-12-18

前段时间公司重构了一个flutter项目,自动化打包用的是Jenkins,在这过程中页遇到了一些坑,借此写一篇文章来,让大家少走些弯路。 先看一下打包完成的效果图: 我实现的效果是打包成功后显示工程名+打包模式+分支名,并显示fir扫码安装的地址,这些都是通过插件来完成的,下面会...

阅读(13)评论(0)赞 (0)

Java

Java并发编程-内存模型及volatile

1

yeseng 发布于 2018-12-18

内存模型相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程则慢得多(不是一个数量级),因此如果任何时候对数据的操作都要通过和内存的...

阅读(12)评论(0)赞 (0)

Java

深入 Java Timer 定时调度器实现原理

2

hanze 发布于 2018-12-17

使用 Java 来调度定时任务时,我们经常会使用 Timer 类搞定。Timer 简单易用,其源码阅读起来也非常清晰,本节我们来仔细分析一下 Timer 类,来看看 JDK 源码的编写者是如何实现一个稳定可靠的简单调度器。 Timer 使用 Timer 调度任务有一次性调度和循环...

阅读(17)评论(0)赞 (0)

Java

为什么阿里巴巴禁止把SimpleDateFormat定义为static类型的?

6

hellas 发布于 2018-12-17

在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式。 最常用的方法就是使用SimpleDateFormat类。这是一个看上去功能比较简单的类,但是,一旦使用不...

阅读(21)评论(0)赞 (0)

Java

浅析Spring Framework框架容器启动过程

7

刘莉莉 发布于 2018-12-17

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1...

阅读(21)评论(0)赞 (0)

编程技术

优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

16

changyuan.xu 发布于 2018-12-17

本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1、引言 MySQL作为开源技术的代表作之一,是互联网得以广泛流行的重要基础技术之一。 国外 GitHub、Airbnb、Yelp、...

阅读(21)评论(0)赞 (0)

编程技术

硬/软件接口:走向何方

2

hanze 发布于 2018-12-17

硬件/软件接口(简称为"HSI")是一个术语,用来描述 SoC 外围设备的配置和功能,以及它们如何与CPU交互。 从寄存器位到访问类型、属性和功能的各种因素的数量,在现代SoC中可能是绝对令人吃惊的。 例如,如果有一个32位地址总线,可以访问2 ^ 32内存映...

阅读(11)评论(0)赞 (0)

Java

学习AbstractQueuedSynchronizer源码以及原理

zhuangli 发布于 2018-12-17

AbstractQueuedSynchronizer(以下简称AQS),是用来构建锁或者其他同步组件的基础架构,它使用一个int成员变量管理同步状态,通过内置FIFO队列来完成资源获取获取线程的排队工作,作者(Doug lea)大神期望它能完成大部分同步需求的基础。 AQS的主要...

阅读(7)评论(0)赞 (0)

编程技术

头条后台研发面经(共三面)+架构师进阶路线分享

wenming.gapo 发布于 2018-12-16

![image.png](https://static.studygolang.com/181216/d1248fff78c6b96bd28c7ced82b875ef.png) 后端研发工程师 找牛客大佬要到了白金码,跳过死亡笔试,直接视频面,面试从3点开始,断断续续到晚上8点结...

阅读(15)评论(0)赞 (0)

Java

类加载

yeseng 发布于 2018-12-16

类(字节流) 接口(字节流) 数组类(由JVM直接生成) 泛型参数(类型擦除,伪泛型) 类加载过程 加载 加载: 查找字节流,并且据此创建类的过程 对于 数组类 ,没有对应的字节流,而是由JVM直接生成的 对于其他类而言,JVM需要借助 类加载器 来完成查找字节流的过程 类加载器...

阅读(22)评论(0)赞 (0)

编程技术

大数据应用发展史:从搜索引擎到人工智能

hellas 发布于 2018-12-16

踽踽独行上下求索总是痛苦,如果有良师益友陪伴点拨必能事半功倍。从新手码农到高级架构师,要经过几步?要多努力,才能成为为人倚重的技术专家?本文将为你带来一张程序员发展路径图,但你需要知道的是,天下没有普适的道理,具体问题还需具体分析,实践才能出真知。 架构师的“内功” 《从 0 开...

阅读(25)评论(0)赞 (0)

Java

对象并不一定都是在堆上分配内存的

1

邓龙华 发布于 2018-12-15

在《深入理解 Java 虚拟机》中有这样一段话: “随着 JIT 编译器的发展和逃逸分析技术的逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象分配到堆上也渐渐不那么绝对了”。 逃逸分析 这是由于在编译期间,JIT 会对代码做很多优化,其中有一部分优化的目的就...

阅读(21)评论(0)赞 (0)