ICode9

精准搜索请尝试: 精确搜索
  • Java AQS锁实现原理2022-08-14 14:30:50

    ​  整体介绍 概念 ​     首先阅读一下类的源码注释,可以知道,这几个接口是最关键的。 ​   这几个方法是使用AQS类的关键,只有这几个方法是可以定制的,其他方法几乎都是final的,不可修改。 从代码实现上看,能看到的变量几乎都是volatile的,能看到的方法几乎都是CAS或者Unsafe类的原

  • volitile关键字的作用及使用2022-08-12 22:03:17

    1.作用 1)避免指令重排 举例子:uniqueInstance = new Singleton() 这个操作不是原子操作,步骤为:1.为 uniqueInstance 分配内存空间; 2. 初始化 uniqueInstance; 3. 将 uniqueInstance 指向分配的内存地址 如果指令重排,可能先执行13,再执行2 2)这个变量是共享且不稳定的, 每次使⽤它都到

  • epoll的实现原理2022-08-12 00:00:22

    1.为什么在用户态协议栈实现epoll? 内核协议栈是对内核文件系统的管理,vfs。fd是用户空间,内核的epoll是没办法管理int类型的fd。 2.协议栈如何与epoll模块通信 客户端与服务器三次握手之后,会加入到全连接队列,这时候会通知epoll   从协议栈回调到epoll 1.通过fd查找对应的节点 2.把

  • unique_lock加锁defer_lock2022-08-07 13:31:35

    #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void msg_func() { std::unique_lock<std::mutex> unique(mutex, std::defer_lock); unique.lock(); while(1) { std::cout << "do some

  • unique_lock加锁2022-08-07 13:03:33

    #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void msg_func() { std::unique_lock<std::mutex> unique(mutex); while(1) { std::cout << "do something" << std::endl;

  • unique_lock加锁adopt_lock2022-08-07 13:00:46

    #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void msg_func() { mutex.lock(); std::unique_lock<std::mutex> unique(mutex, std::adopt_lock); while(1) { std::cout << "do somet

  • lock_guard加锁2022-08-07 12:35:04

    #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void msg_func() { std::lock_guard<std::mutex> guard(mutex); while(1) { std::cout << "do something" << std::endl;

  • 2022-08-02第一小组 孔海波 学习笔记2022-08-03 22:02:02

    今日学习情况:理解 心情:60% 多线程 synchronized三个加锁方式 修饰实例方法:作用于当前实例,进入同步代码就要加锁 修饰静态方法:作用于当前类对象加锁,进入同步代码之前要获得当前类对象的锁 同步代码块:指定加锁对象,进入同步代码块之前。要获得给定对象的锁 死锁      死锁:多

  • 2022-8-3 第一小组 甘源册 学习笔记2022-08-03 20:36:06

    目录知识点掌握情况学习心情1.多线程1.1锁1.2死锁1.3线程重入1.4Object类对多线程的支持1.5方法总结:1.6线程的退出1.7Thread类的常用方法1.8懒汉式单例模式 知识点掌握情况 锁(了解) Object的多线程方法(了解) 学习心情 崩溃!!! 1.多线程 1.1锁 synchronized(多线程——重量级的锁) JDK

  • MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE2022-08-02 12:04:39

    线上无锁添加索引:加索引的语句不加锁 ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;    ALGORITHM=INPLACE更优秀的解决方案,在当前表加索引,步骤:1.创建索引(二级索引)数据字典2.加共享表锁,禁止DML,允许查询3.读取聚簇索引,构造新的索引项,排序

  • 聊聊如何用 Redis 实现分布式锁?2022-07-25 16:00:11

    作者:小林coding 计算机八股文网站:https://xiaolincoding.com 哈喽,我是小林。 今天跟大家聊聊两个问题: 如何用 Redis 实现分布式锁? Redis 是如何解决集群情况下分布式锁的可靠性问题的? 如何用 Redis 实现分布式锁的? 分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个

  • 乐观锁和悲观锁2022-07-24 20:31:34

    乐观锁和悲观锁 乐观锁和悲观锁详细 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用。 Java中synchronized关键字和Lock的实现类是悲观锁,线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。 这种锁会让没有得到

  • 锁机制-MyISAM的锁模式2022-07-22 21:04:48

    目录MyISAM的锁模式准备数据加读锁(共享锁)加写锁(排他锁)加锁数量的限制多个会话是否可以对同一个表加锁同一个会话是否可以对多个表加锁 MyISAM的锁模式 MyISAM存储引擎使用表锁,不支持行级锁; MyISAM在执行査询语句(SELECT)前,会自动给涉及的表加读锁,在执行更新操作(DML)前,会自

  • 别在高并发场景中使用悲观锁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.

专注分享技术,共同学习,共同进步。侵权联系[[email protected]]

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

ICode9版权所有