
线程锁
强迫症Kobe
与其焦虑成疾,不如静心学习。
展开
-
详解synchronized与Lock的区别与使用
最近在看Java多线程这一大块,所以在优快云上找了很多文章。今天看到synchronized和lock的用法,看了几篇文章,感觉这篇讲的挺好,就转载过来。原文地址:http://blog.youkuaiyun.com/u012403290/article/details/64910926?locationNum=4&fps=1详解synchronized与Lock的区别与使用技术点:转载 2017-11-20 20:58:46 · 668 阅读 · 0 评论 -
Java锁--Lock实现原理(底层实现)
这一篇比上一篇讲的要深入,也一块儿转载过来放在这里。关于java lock的底层实现原理,讲的有点深,转载学习!Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现转载 2017-11-20 21:01:52 · 17144 阅读 · 0 评论 -
BlockingQueue深入分析
一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)转载 2017-12-20 21:05:36 · 168 阅读 · 0 评论 -
JAVA HASHMAP的死循环
原文链接:https://coolshell.cn/articles/9606.html在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出转载 2017-12-15 23:36:45 · 167 阅读 · 0 评论 -
JDK 1.8 ConcurrentHashMap 源码剖析
转载两篇不错的文章:第一篇:前言HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。[java] view plain copy final HashMap map = new HashMap(2); for (int i = 0; i 1转载 2017-12-30 13:44:58 · 537 阅读 · 0 评论 -
如何用一句话介绍synchronize的内涵
内涵与表象关于synchronize,一个非常通俗易懂,很容易记住的解释是:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。这个解释很好,它非常直观的告诉我们使用synchronize会带来什么效果。 然而,也正因为如此,这个解释太过停留在了表面,就像给一款洗衣机做广告,广告中说这款自动式洗衣机可以一键转载 2018-02-07 16:35:56 · 227 阅读 · 0 评论 -
mysql共享锁与排他锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁...转载 2018-03-22 00:30:53 · 153 阅读 · 0 评论 -
MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)
本文参考: http://mysqlpub.com/thread-5383-1-1.html http://blog.youkuaiyun.com/c466254931/article/details/53463596 有很多是转载合并过来。锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据...转载 2018-03-22 00:34:17 · 181 阅读 · 0 评论