标签:锁

编程技术

微服务架构下,Mysql读写分离后,数据库CPU飙升卡壳问题解析

6

刘莉莉 发布于 2019-09-20

前言 最近系统(基于SpringCloud+K8s)上线,运维团队早上8点左右在群里反馈,系统登录无反应!我的第一反应是Mysql数据库扛不住了。 排查问题也是一波三折,有网络问题,也有mysql读写分离后数据库参数优化问题。 问题回顾 1、运维团队早上8点左右在群里反馈,系统登...

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

Java

你真的知道怎么面试吗?告诉你怎么提升面试成功率

3

songhua.gao 发布于 2019-09-19

在技术面试的时间段里(最长1个小时),你如果能展现你的优势那是最好的,但如果你做不到这点,简单点,让面试官感觉你达到了最低标准即可。这好比在大学里考试,有些同学对某门课的知识点完全不懂,但也有可能通过考前突击和刷题来通过考试(不作弊),而且还有可能考高分。 至于通过技术面试后,项...

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

Java

java 并发编程之共享变量

4

Harries 发布于 2019-09-19

可见性 如果一个线程对共享变量值的修改, 能够及时的被其他线程看到, 叫做共享变量的可见性. Java 虚拟机规范试图定义一种 Java 内存模型 (JMM), 来屏蔽掉各种硬件和操作系统的内存访问差异, 让 Java 程序在各种平台上都能达到一致的内存访问效果. 简单来说, 由...

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

Java

1.2.3 线程安全之java锁相关

Harries 发布于 2019-09-19

自旋锁:为了不放弃CPU执行事件,循环的使用CAS技术对数据尝试进行更新,直至成功。 自旋锁实际是乐观锁的一种实现,假定一开始不会发生冲突,从内存加载数据,然后对数据修改的操作时将内存中数据与加载的数据进行比较,如果发生了变化就会一直占用CPU,不停的重新加载内存中的新数据,然后...

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

编程技术

架构 — 复杂度 — 高性能

2

likai 发布于 2019-09-19

架构设计的目的:解决 软件系统复杂度 带来的问题 软件复杂度的主要来源: 高性能 、 高可用 、 可扩展性 、 低成本 、 安全 、 规模 单机复杂度 计算机内部复杂度最关键的地方是 操作系统 计算机性能的发展本质是由 硬件发展驱动 的,将硬件性能充分发挥出来的关键是操作系统 操...

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

Java

Java基础笔试练习(三)

hanze 发布于 2019-09-19

A.skip() B.close() C.mark() D.reset() 答案: B 解析:inputstream的close方法用来关闭流 skip()用来跳过一些字节 mark()用来标记流 reset()复位流 2.下面语句正确的是() A.x+1=5 B.i++=1 C...

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

Java

Java内存模型(JMM)

8

xirruiqiang 发布于 2019-09-19

在 JMM 中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在 happens-before 关系。 happens-before 原则非常重要,它是判断数据是否存在竞争、线程是否安全的主要依据,依靠这个原则,我们解决在并发环境下两操作之间是否可能存在冲突...

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

Java

Java并发-ReentrantLock

5

xiaoli.wang 发布于 2019-09-19

1.简介 可重入锁ReentrantLock自 JDK 1.5 被引入,功能上与synchronized关键字类似,但是功能上比 synchronized 更强大,除可重入之外,ReentrantLock还具有4个特性: 等待可中断、可实现公平锁、可设置超时、以及锁可以绑定多个条...

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

Java

AbstractQueuedSynchronizer 原理分析

4

changyuan.xu 发布于 2019-09-19

AQS ,AbstractQueuedSynchronizer ,即队列同步器。它是构建锁或者其他同步组件的基础框架(如 ReentrantLock、ReentrantReadWriteLock、Semaphore 等),J.U.C 并发包的作者(Doug Lea)期望它能够成为...

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

Java

浅谈 volatile 实现原理

2

puefu.he 发布于 2019-09-19

synchronized 是一个重量级的锁,的 volatile 则是轻量级的 synchronized ,它在多线程开发中保证了共享变量的“可见性”。如果一个变量使用 volatile ,则它比使用 synchronized 的成本更加低,因为它不会引起线程上下文的切换和调度。...

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

Java

解决原子性问题?你首先需要的是宏观理解

7

xubiao.zhuang 发布于 2019-09-19

上一篇文章 可见性有序性,Happens-before来搞定 ,解决了并发三大问题中的两个,今天我们就聊聊如何解决原子性问题 原子性问题的源头就是 线程切换 ,但在多核 CPU 的大背景下,不允许线程切换是不可能的,正所谓「魔高一尺,道高一丈」,新规矩来了: 互斥: 同一时刻只有...

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

Java

头条面试归来,有些话想和Java程序员说!

2

xiaoli.he 发布于 2019-09-19

前段时间,字节跳动在阿里巴巴的大本营杭州悄悄的建立一个研发中心,最近在疯狂招人。 相信最近一段时间,杭州的很多的互联网公司的开发人员都接到过猎头的电话。据了解,字节跳动杭州研发中心主要负责字节跳动新增业务板块的研发,以及研发成果和产品的就地产业转化。 近期我有一个朋友接受了邀请过...

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

编程技术

抛开复杂的架构设计,MySQL优化思想基本都在这

8

xubiao.zhuang 发布于 2019-09-19

  优化一览图 优化 笔者将优化分为了两大类:软优化和硬优化。软优化一般是操作数据库即可;而硬优化则是操作服务器硬件及参数设置。 1、软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息。 例: DES...

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

编程技术

人人都想学架构(三)

4

changyuan.xu 发布于 2019-09-18

本文是《从0开始学架构》专栏学习的第三篇,第四节和第五节分别说了存储高性能和计算高性能。 第四节主要说的是存储高性能,研究的课题就是MySQL这样的关系型数据库,NoSQL,缓存。 (一)MySQL 对于关系型数据库来说,比较熟悉的就是MySQL,如果将所有的读取压力全部放在单一...

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

Java

Java高性能编程之CAS与ABA及解决方法

songhua.gao 发布于 2019-09-18

Java高性能编程之CAS与ABA及解决方法 前言 如果喜欢暗色调的界面或者想换换界面,可以看看我在个人博客发布的 Java高性能编程之CAS与ABA及解决方法 。 CAS概念 CAS,全称Compare And Swap,比较与交换。 属于硬件级别的同步原语,从处理器层面提供了...

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

Java

jdk8 ConcurrentHashMap 源码解析

2

邓龙华 发布于 2019-09-18

今天面试新同学, 整理面试题的时候, 看到ConcurrentHashMap, 很久之前了解过, 记得是按segment分段锁提高并发效率,jdk8重写了这个类, 平常业务代码中用到的也比较少, 忽略了,今天重新拾起来看一下, 做一个笔记, 有错误之处, 欢迎批评指正 jdk7 ...

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

Spring

TCC-Transaction源码解读。

6

zhuangli 发布于 2019-09-18

为了解决在事务运行过程中大颗粒度资源锁定的问题,业界提出一种新的事务模型,它是基于业务层面的事务定义。锁粒度完全由业务自己控制。它本质是一种补偿的思路。它把事务运行过程分成 Try、Confirm / Cancel 两个阶段。在每个阶段的逻辑由业务代码控制。这样就事务的锁粒度可以...

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