202012-30 Postgresql锁机制详解(表锁和行锁) 表锁LOCK[TABLE][ONLY]name[*][,...][INlockmodeMODE][NOWAIT]lockmode包括以下几种:ACCESSSHARE|ROWSHARE|ROWEXCLUSIVE|SHAREUPDATEEXCLUSIVE|SHARE|SHAREROWEXCLUSIVE|EXCLUSIVE|ACCESSEXCLUSIVELOCKTABLE命令用于获取一个表锁,获取过程将阻塞一直到等待的锁被其他事务释放。如果使用NOWAIT关键字则如果获取不到锁,将不会等待而是直接返回,放弃执行当前指令并抛出一个错误(error)... 继续阅读 >
202012-10 MySQL数据库锁机制原理解析 在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。锁分类①、按操作划分:DML锁,DDL锁②、按锁的粒度划分:表级锁、行级锁、页级锁③、按锁级别划分:共享锁、排他锁④、按加锁方式划分:自动锁、显示锁⑤、按使用方式划分:乐观锁、悲观锁乐观锁和悲观锁乐观并发控制和悲观并发控制是并发控制采用的主要方... 继续阅读 >
202010-08 Java多线程锁机制相关原理实例解析 上下文:程序运行需要的环境(外部变量)上下文切换:将之前的程序需要的外部变量复制保存,然后切换到新的程序运行环境系统调用:(用户态陷入操作系统,通过操作系统执行内核态指令,执行完回到用户态)用户态——内核态——用户态:两次上下文切换线程wait()方法:将自身加入等待队列,发生了一次上下文切换notify()方法:将线程唤醒,也发生了上下文切换Java线程中的锁:偏向锁、轻量级锁、重量级锁。注意:偏向锁和轻量级锁都... 继续阅读 >