区别 synchronized关键字 synchronized作用是对类的当前实例(对象)加锁。可以使用synchronized关键字来标记一个方法或者代码块,当某个线程调用该对象的synchronized方法或者访问synchronized代码块时,这个线程便获得了该对象的锁,其他线程暂时无法访问 ...
分类:
其他好文 时间:
2020-07-12 00:42:36
阅读次数:
53
synchronized 注意事项:1、synchronized (Object ) --不能使用 String常量 Integer long 2 线程同步 -synchronize 锁的是对象不是代码 this XX.classs 加锁的方法跟不加锁的方法可以同时运行 互不干扰 锁升级 --1. ...
分类:
其他好文 时间:
2020-07-10 00:03:54
阅读次数:
70
摘要:上次我们学习了 Golang 的 goroutine 调度策略,今天我们来学习 Golang 的内存管理策略。 思考内存管理如何设计 内存池 最直接的方式是调用 malloc函数,指定要分配的大小,直接向操作系统申请。问题是这种方式会涉及到用户态和内核态的切换过程,那么频繁的切换就会带来很大的 ...
分类:
其他好文 时间:
2020-07-08 12:58:36
阅读次数:
58
前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了几种处理方法。 生产环境架构图 目前现网的架构,保存着两份数据,通过异步复制做的高可用集群,两台机器 ...
分类:
数据库 时间:
2020-07-07 00:31:57
阅读次数:
69
1、锁的作用 Java中的锁主要用于保障多并发线程情况下数据的一致性。 在多线程编程中为了保障数据的一致性,通常需要在使用对象或者方法之前加锁,这时如果有其他线程也需要使用该对象或方法。则首先要获得锁,如果某个线程发现锁正在被其他线程使用,就会进入阻塞队列等待锁的释放,直到其他线程执行完成并释放锁, ...
分类:
编程语言 时间:
2020-07-07 00:15:49
阅读次数:
91
【本文完善中...】 无论是http接口,还是rpc接口,防重复提交(接口防重)都是绕不过的话题。 重复提交与幂等,既有区别,又有联系。幂等的意思是,对资源的一次请求与多次请求,作用是相同的。HTTP的POST方法是非幂等的。如果程序处理不好,重复提交会导致非幂等,引起系统数据故障。防重复提交,要通 ...
分类:
其他好文 时间:
2020-07-06 19:55:13
阅读次数:
86
本文源码:GitHub·点这里||GitEE·点这里一、Lock体系结构1、基础接口简介Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接口,基本关系如下:Lock接口Java并发编程中资源加锁的根接口之一,规定了资源锁使用的几个基础方法。ReentrantLock类实现Lock接口的可重入锁,即线程如果获得当前实例的锁,并进入任务方法,在线程没
分类:
编程语言 时间:
2020-07-06 01:22:10
阅读次数:
70
悲观锁: 很悲观、认为什么时候都会出问题、无论做什么都加锁、很影响性能 乐观锁: 1.很乐观、认为什么时候都不会出问题、所以不上锁。更新数据的时候去判断下,在此期间是否有人修改这个数据。 2.获取version 3.更新时比较version watch (监控、实现乐观锁) 监控测试、正常执行: m ...
分类:
其他好文 时间:
2020-07-05 19:33:12
阅读次数:
60
这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首先,很多人可能连AQS是什么都不知道。或者仅仅是听说过AQS这个名词,但是可能连全称怎么拼写都不知道。 更有 ...
分类:
编程语言 时间:
2020-07-05 19:12:03
阅读次数:
64
首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们提供了这些方法去加锁,比如synchronized关键字或者 ...
分类:
其他好文 时间:
2020-07-04 15:38:23
阅读次数:
55