Wesley13 Wesley13
3年前
java的静态方法加锁与一般方法加锁
第一部分: synchronized 与staticsynchronized  的区别第二部分:java多线程锁,源码剖析1、synchronized与staticsynchronized的区别   synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块。  stat
Stella981 Stella981
3年前
MESI协议:Cache 一致性协议
总线嗅探机制把所有的读写请求都通过总线(Bus)广播给所有的CPU核心,然后让各个核心去“嗅探”这些请求,再根据本地的情况进行响应。MESI协议基于写失效(WriteInvalidate)如果某个CPU核心写入一个CacheLine,则会广播一个失效请求告诉所有其他的
Wesley13 Wesley13
3年前
MySQL数据库表设计规范
一、数据库设计1、一般都使用INNODB存储引擎,除非读写比率<1%,才考虑使用MYISAM存储引擎;其他存储引擎请在DBA的建议下使用。2、Storedprocedure(包括存储过程,函数,触发器)对于MYSQL来说还不是很成熟,没有完善的出错记录处理,不建议使用。3、UUID(),USER()这样的
Wesley13 Wesley13
3年前
2021升级版微服务教程5—通过IDEA运行多个项目实例「模拟集群」
2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」!(https://oscimg.oschina.net/oscnet/c90af33621f64812a448cdce3e5d903a.png)教程全目录「含视频」:https://gitee.com/bingqilinpe
Stella981 Stella981
3年前
Guava库学习:学习Guava Files系列(二)
  上一篇,Guava库学习:学习GuavaFiles系列(一)(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.xx566.com%2Fdetail%2F216.html)中,我们简单的学习了使用Files进行文件的读写等常用操作,本篇我们继续进行GuavaFiles系列
Wesley13 Wesley13
3年前
Netty
NettyByteBuf1.1原生的ByteBufferJavaNIO的ByteBuffer被称为字节缓冲区。此类针对字节缓冲区定义了以下六类操作:1.读写单个字节的绝对和相对get和put方法;2.将此缓冲区的连续字节序列传输到数组中的相对批量ge
Stella981 Stella981
3年前
Redis和多路复用模型
作者:Rico原文:hogwartsrico.github.io/2020/06/24/RedisandMultiplexing/几种I/O模型为什么Redis中要使用I/O多路复用这种技术呢?首先,Redis是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的
Wesley13 Wesley13
3年前
MySQL 8.0新特性
如果某行记录被事务锁住了,select...forupdate、或select...forshare事务对相同的行加锁的时候必须等待,直到产生阻塞的事务释放锁。为了避免等待事务释放锁定的行,nowait和skiplocked选项可以被用于select...forupdate或select...forshare语句:·now
Stella981 Stella981
3年前
Lock 解析,如何避免死锁?
Lock前面聊了聊synchronized,今天再聊聊Lock。Lock接口是Java5引入的,最常见的实现类是ReentrantLock、ReadLock、WriteLock,可以起到“锁”的作用。PS:篇幅原因,这章不聊实现类,后面再聊,只专注于Lock以及它与synchronized的区别。!(htt
Wesley13 Wesley13
3年前
Java中的队列同步器AQS
一、AQS概念  1、队列同步器是用来构建锁或者其他同步组件的基础框架,使用一个int型变量代表同步状态,通过内置的队列来完成线程的排队工作。  2、下面是JDK8文档中对于AQS的部分介绍  publicabstractclassAbstractQueuedSynchronizerextendsAbstract