ICode9

精准搜索请尝试: 精确搜索
  • 别在高并发场景中使用悲观锁2022-07-22 16:06:30

    乐观锁、悲观锁并不像行级锁、共享锁等概念一样是真实存在的锁。其实他们只是人们定义出来的概念,可以认为是一种思想。 悲观锁和乐观锁 悲观锁,正如其名,它指的是对数据被外界修改持悲观态度,因此,在整个数据处理过程中,需要先将数据进行锁定,获得锁之后再进行操作。 在MySQL中,可以使用

  • redisson中的看门狗机制总结2022-07-20 10:00:18

    1:普通的Redis分布式锁的缺陷我们在网上看到的redis分布式锁的工具方法,大都满足互斥、防止死锁的特性,有些工具方法会满足可重入特性。如果只满足上述3种特性会有哪些隐患呢?redis分布式锁无法自动续期,比如,一个锁设置了1分钟超时释放,如果拿到这个锁的线程在一分钟内没有执行完毕,那么

  • MySQL间隙锁,如何解决幻读2022-07-19 18:08:53

    间隙锁 InnoDB支持三种锁定方式: 行锁(Record Lock):锁直接加在索引记录上面。 间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。 Next-Key Lock:行锁与间隙锁组合起来用就叫做Next-Key Lock。 间隙锁:当我们

  • 面试题day42022-07-12 17:31:31

    任拓数据科技 自我介绍 聊我的项目 项目中的网页有没有安全机制?防sql注入等等 json数据裸奔 对数据加密,MD5加密 权限认证,shiro 项目中遇到的问题?跨域 为什么跨域?解决方法? 几个算法(括号匹配、排序高考分数、身份证号码索引) 说我的简历好像没有体现对代码的热爱?没

  • 数据库事务的并发-锁机制-mysql2022-07-04 19:03:40

    数据库为什么需要锁 锁机制:解决因资源共享而造成的并发问题。 事务在并发执行时,对同一张表(或同一条数据)进行操作而引发的问题 示例:买最后一件衣服X A: X 买:X加锁->试衣服...下单..付款..打包->X解锁 B: X 买:发现X己被加锁,等待X解锁, X己出售 锁分类 操作类型 a. 读锁(

  • 多线程(进阶版)(八股文)2022-07-02 20:34:38

    一、常见的锁策略 1. 乐观锁 vs 悲观锁 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。乐观锁:假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生

  • MVCC 的一些总结2022-06-30 19:00:25

    解决问题 MVCC(Multiversion Concurrency Control),多版本并发控制。MVCC 的目的是为了提高数据库并发性能,用更好的方式去处理读-写冲突、同时做到不加锁、非阻塞并发读写。 MVCC 可以解决脏读、不可重复读,MVCC 使用快照读解决了部分幻读问题,而在当前读时还存在幻读问题,是通过临键

  • MySQL 锁常见知识点&面试题总结2022-06-29 21:35:09

    节选自 《MySQL 常见知识点&面试题总结》 表级锁和行级锁了解吗?有什么区别? MyISAM 仅仅支持表级锁(table-level locking),一锁就锁整张表,这在并发写的情况下性非常差。 InnoDB 不光支持表级锁(table-level locking),还支持行级锁(row-level locking),默认为行级锁。行级锁的粒度更

  • 朋友问,你对Java锁理解的那么好,为什么不分享给大家?2022-06-29 14:31:50

    转载自:https://baijiahao.baidu.com/s?id=1697365218983521838&wfr=spider&for=pc   我们在工作中,不知你是否留意java的一些锁,什么乐观锁、悲观锁、自旋锁、可重入锁、读写锁、公平锁、非公平锁、共享锁、独占锁、重量级锁、轻量级锁、偏向锁、分段锁、互斥锁、同步锁、死锁、以

  • java锁机制2022-06-28 19:03:56

    公平锁和非公平锁   公平锁就是按照先来先服务、非公平就是不管你什么时候来,唤醒的时候都是随即唤醒。例如synchronize就是非公平锁,ReentrantLock既可以作为公平锁,也可以作为非公平锁。 可重入锁   可重入锁就是说某个线程已经获取到某个锁,这个线程跨域在次获取到这个锁而不会

  • MySQL十种锁,一篇文章带你全解析2022-06-27 22:38:44

    MySQL有两个核心的知识点,索引和锁。前几篇文章已经详细讲解了MySQL索引实现机制,今天再一起学习一下MySQL的锁。 1 为什么要加锁? 当多个事务并发操作同一批数据的时候,如果不加锁,就无法保证事务的隔离性,最后导致数据错乱。 加锁是为了保证并发操作下数据的正确性。 2 锁的分类有哪些

  • mysql 锁分类2022-06-25 09:31:52

    1. 按属性分:  a. 共享锁(读锁) S:当一个事务对数据添加读锁后,其他事务只能对该数据加读锁,不能做修改操作,也就是加写锁。b. 排他锁(写锁) X:当一个事务对数据添加写锁后,其他事务既不能对该数据加读锁,也不能加写锁。只有等待当前写锁释放后,才能进行后续加锁操作。   2. 按状态分: a.

  • Eclipse Paho MQTT的C/C++库感觉质量不怎么高啊2022-06-24 00:33:28

    https://github.com/eclipse/paho.mqtt.c C++库也是依赖这个C库的。   1、内部创建野线程 (不对这个线程执行join操作。传给野线程的指针也没引用计数。如果这个野线程被后调度,导致use after free) 我提的issue。貌似不止这一处?https://github.com/eclipse/paho.mqtt.c/issues/1236

  • 悲观锁与乐观锁 使用场景2022-06-16 11:36:56

    两种锁各自的使用场景 悲观锁适合用于并发写入多、临界区代码复杂、竞争激烈等场景,这种场景下悲观锁可以避免大量的无用的反复尝试等消耗。 乐观锁适用于大部分是读取,少部分是修改的场景,也适合虽然读写都很多,但是并发并不激烈的场景。在这些场景下,乐观锁不加锁的特点能让性能大幅

  • Mysql锁2022-06-16 09:34:53

    Mysql锁 锁是计算机协调多个进程或线程并发访问某一资源的机制 我们认知中的行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁,这些锁统称为悲观锁 概述 MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level

  • redis分布式锁2022-06-14 19:31:07

    redis分布式锁的发展过程。 单机情况下,可以使用synchronized(obj),来保证同步代码块。 代码如下:  其原理是:每个Java对象都可以关联一个Monitor对象,如果使用synchronized给对象上锁(重量级锁)之后,该对象头Mark World中就被设置指向Monitor对象的指针。   对象头在JVM中存储的形式:

  • MySQL中事务隔离级别的实现原理2022-06-14 17:02:27

    抄录于 https://www.jb51.net/article/204963.htm 详解MySQL中事务隔离级别的实现原理 前言 说到数据库事务,大家脑子里一定很容易蹦出一堆事务的相关知识,如事务的ACID特性,隔离级别,解决的问题(脏读,不可重复读,幻读)等等,但是可能很少有人真正的清楚事务的这些特性又是怎么实现的,为什

  • Zookeeper分布式锁实现Curator十一问2022-06-13 13:34:47

    前面我们剖析了Redisson的源码,主要分析了Redisson实现Redis分布式锁的15问,理清了Redisson是如何实现的分布式锁和一些其它的特性。这篇文章就来接着剖析Zookeeper分布式锁的实现框架Curator的源码,看看Curator是如何实现Zookeeper分布式锁的,以及它提供的哪些其它的特性。 Curator

  • 阿里三面:让你怀疑人生的Java锁机制夺命连环21问2022-06-12 22:31:32

    前言 锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是Java锁独有的,其他各种计算机语言中也有着锁机制相关的实现,数据库中也有锁的相关内容,这篇文章总结的Java锁机制笔记也为大家打包好了,需要的自取即可,希望可以帮助大家从Java入手,深入学习、理解Java中的锁机制,提升Java并发

  • java的6中单例模式2022-06-11 14:03:20

    第一种:饿汉式:当第一次访问这个对象的时候就向没吃过饭一样,类进行全部加载进去 缺点:太消耗内存,全部加载不一定都会使用,产生垃圾 优点:没有加锁,速度快 第二种:懒汉式(线程不安全) 缺点:没加锁,在多线程下会出问题。 第三种:懒汉式(线程安全,加锁) 缺点:因为加锁了,故效率会降低 优点:节省内存,在

  • redis锁怎么实现?这 3 种常见方法你知道几个2022-06-08 09:03:56

    本文已收录于 Github CodeClass 和 Gitee CodeClass 致力于打造高质量编程学习课堂,内含百篇原创技术文章,千本计算机开源电子书,谷歌、阿里大神开源 LeetCode 题解,各类编程学习资源,欢迎 star ,一起学习! 大家春节在家抢红包玩的不亦乐乎,抢红包服务看起来非常简单,实际上要做好这个服

  • Lock锁与synchronized的区别2022-06-03 14:32:19

    Lock锁只能用于代码块,是显示锁,需要自己开启和关闭锁,一般在try中加锁,finally中解锁。synchronized可用于方法和代码块,是隐式锁,出了作用域会行解锁。可优先考虑使用Lock锁,调度性能相对高一点,并且提供了更多的子类。如可重入锁 ReentrantLock                

  • synchronized真的很重么?2022-06-01 23:02:32

    synchronized 是java中常见的保证多线程访问共享资源时的安全的一个关键字。很多人在讲到synchronized 时都说synchronized 是一把重量级的锁,那么synchronized 真的很重么? synchronized 在jdk 1.6以前(不包括1.6)的确是一把很重的锁,每次使用锁的时候都是直接向操作系统请求的,所以

  • Golang 常见设计模式之单例模式2022-06-01 10:34:13

    之前我们已经看过了 Golang 常见设计模式中的装饰和选项模式,今天要看的是 Golang 设计模式里最简单的单例模式。单例模式的作用是确保无论对象被实例化多少次,全局都只有一个实例存在。根据这一特性,我们可以将其应用到全局唯一性配置、数据库连接对象、文件访问对象等。Go 语言实现

  • mysql 锁 (基础)2022-05-31 18:03:15

    锁:在并发访问时,解决数据访问的一致性、有效性问题 MySQL中的锁,按照锁的粒度分,分为以下三类:1.全局锁:锁定数据库中的所有表。2.表级锁:每次操作锁住整张表。3.行级锁:每次操作锁住对应的行数据。 1.全局锁:全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有