Wesley13 Wesley13
2年前
java锁学习(一)
作用能够保证同一时刻,最多只有一个线程执行该段代码,以达到并发安全的效果主要用于同时刻对线程间对任务进行锁地位synchronized是JAVA的原生关键字,是JAVA中最基本的互斥手段,是并发编程中的元老角色不使用并发的后果不使用并发会导致多线程情况下,同一个数据被多个线程同时更改,造成结果和预期不一致
Easter79 Easter79
2年前
synchronized 和 ReentrantLock的区别
synchronized是Java内建的同步机制,所以也有人称其为IntrinsicLocking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。在Java5以前,synchronized是仅有的同步手段,在代码中,synchronized可以用来修饰方法,也可以使用在特定的代码块
Wesley13 Wesley13
2年前
java多线程——CAS
关于无锁队列,网上有很多介绍了,我做一个梳理,从它是什么再到它有哪些特性以及应用做一个总结,方便自己使用和记录。本文主要内容:非阻塞同步是什么cas是什么特性ABA问题无阻塞队列1非阻塞同步互斥同步属于一种悲观的并发策略,总认为只要不去做正确的同步措施,肯定会出问题,无论共享数据是否真的会出现竞争,它都要进行加锁。而基
Wesley13 Wesley13
2年前
Java并发编程原理与实战十二:深入理解volatile原理与使用
volatile:称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的。可见:一个线程修改了这个变量的值,在另一个线程中能够读取到这个修改后的值。synchronized除了线程之间互斥之外,还有一个非常大的作用,就是保证可见性。以下demo即保证a值的可见性。首先来看demo:!复制代码(https://oscimg.osc
Wesley13 Wesley13
2年前
mysql 锁
第一章概述锁的分类:从对数据操作的粒度分表锁、行锁。从对数据的操作类型(读\\写)分读锁(共享锁)、写锁(排它锁)读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。写锁(排它锁):当前写操作没完成前,它会阻断其他写锁和读锁。第二章 表锁(偏读)偏向MyISAM存储引擎,开销小,加
Wesley13 Wesley13
2年前
MySQL锁
<br1\.表锁表锁分为写锁,读锁,二者读读不阻塞,读写阻塞,写写阻塞<br<br2\.行锁行锁分为共享锁,排他锁,即读锁和写锁多粒度锁机制自动实现表、行锁共存,InnoDB内部有意向表锁意向共享锁(IS):事务在给一个数据行加共享锁前必须先取得该表的IS锁。
Wesley13 Wesley13
2年前
Java并发(一)wait()与notifyAll()
  当你使用线程来同时执行多个任务时,可以通过使用锁(互斥)来同步两个任务的行为,从而使得一个任务不会干涉另一个任务的资源。也就是说,如果两个任务在交替着使用某项共享资源(通常是内存),你可以使用互斥来是的任何时刻只有一个任务可以访问这项资源。那么,如果线程之间是协作关系,我们必须保证某些步骤在其他步骤之前先被处理。举个例子:必须先挖房子的地基,接下来才
Stella981 Stella981
2年前
P,V操作及同步互斥实例
无论是计算机考研、计算机软件水平考试、计算机操作系统(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.cangbaowo.com%2Farchives%2Ftag%2F%25E6%2593%258D%25E4%25BD%259C%25E7%25B3%25BB%25E7%25BB%
Wesley13 Wesley13
2年前
Mysql 乐观锁 和悲观锁
平时看博客或技术文章的时候,经常被各种锁搞得晕晕乎乎,包括在自旋锁、可重入锁、公平锁等等、乐观锁、悲观锁、行锁、表锁、意向锁、排它锁等。前段时间终于把Java多线程相关的锁有机会学习了一遍。现在开始整理mysql相关的锁概念。先从乐观锁和悲观锁开始聊聊。首先要知道,乐观锁和悲观锁不是真实存在的锁,只是两种抽象概念性的东西,就相当于Java中的接口,只
Stella981 Stella981
2年前
Linux内核同步机制
1\.同步与互斥(1)互斥与同步机制是计算机系统中,用于控制进程对某些特定资源(共享资源)的访问的机制(2)同步是指用于实现控制多个进程按照一定的规则或顺序访问某些系统资源的机制。(3)互斥是指用于实现控制某些系统资源在任意时刻只能允许一个进程访问的机制。互斥是同步机制中的一种特殊情况。(4)同步机制是linux操作系统可以高效稳定运行的重