Java中共享变量的内存可见性问题: 在java内存模型中规定,所有的变量都放在主内存中,当使用变量时,会把主内存中的变量复制到线程自己的工作空间或叫工作内存中,线程读写时操作的是自己工作内存中的变量。 如上图所示是一个双核的cpu系统架构,每个核都有自己的控制器和运算器,有自己的L1级缓存,有些架 ...
分类:
其他好文 时间:
2018-12-30 22:05:47
阅读次数:
250
我们在高并发的场景下,经常会在异常日志中看到“dead lock(死锁)”的错误信息。想了无数的解决方案,都没有能够最终的解决,到底是什么原因引起了死锁呢?要解决这个问题,我们就必须先了解透彻数据库都有哪些锁?他们的工作机制是什么样的。 那,让我们开启今天的学习之路吧。 为什么数据库要加锁? 当多条 ...
分类:
数据库 时间:
2018-12-30 02:32:17
阅读次数:
225
Synchronized和同步阻塞synchronized是jvm提供的同步和锁机制,与之对应的是jdk层面的J.U.C提供的基于AbstractQueuedSynchronizer的并发组件。synchronized提供的是互斥同步,互斥同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻 ...
分类:
编程语言 时间:
2018-12-28 21:11:40
阅读次数:
232
目录介绍5.0.0.1线程池具有什么优点和缺点?为什么说开启大量的线程,会降低程序的性能,那么该如何做才能降低性能?5.0.0.3线程中start和run方法有什么区别?wait和sleep方法的不同?sleep()、join()、yield()有什么区别?5.0.0.4用Java手写一个会导致死锁的程序,遇到这种问题解决方案是什么?那些场景用到了死锁机制?5.0.0.5ThreadLocal(线
分类:
编程语言 时间:
2018-12-25 00:58:15
阅读次数:
252
在写入数据库的时候需要有锁,比如同时写入数据库的时候会出现丢数据,那么就需要锁机制。 数据锁分为乐观锁和悲观锁,那么它们使用的场景如下: 1. 乐观锁适用于写少读多的情景,因为这种乐观锁相当于JAVA的CAS,所以多条数据同时过来的时候,不用等待,可以立即进行返回。 2. 悲观锁适用于写多读少的情景 ...
分类:
数据库 时间:
2018-12-23 20:51:54
阅读次数:
167
20.锁问题锁是计算机协调多个进程或线程并发访问某一资源的机制。 20.1 Mysql锁概述锁类型分为表级锁、页面锁、行级锁。表级锁:一个线程对表进行DML时会锁住整张表,其它线程只能读该表,如果要写该表时将产生锁等待。 优点:开销少、加锁快、不会产生死锁。缺点:锁粒度大、容易产生锁等待、并发低。行 ...
分类:
数据库 时间:
2018-12-15 15:56:30
阅读次数:
267
生产者与消费者处在中游的既是上游生产者的消费者,又是下游消费者的生产者;因为生产者与消费者之间存在对公共资源的读写,所以要求实现锁机制以保证线程安全;这是一种基于流水线形式的设计模式,而流水线就是内存缓冲区,内存缓冲区为空的时候消费者必须等待,而内存缓冲区满的时候,生产者必须等待,通过内存缓冲区进行 ...
分类:
其他好文 时间:
2018-12-12 00:27:17
阅读次数:
144
Java中的锁机制 Lock不是Java语言内置的, synchronized是Java语言中的关键字, Lock是一个接口,通过这个接口可以实现同步访问。 Lock允许更灵活的结构, 并可以支持多个相关类的条件对象。优势在于: 使锁更公平, 使线程在等待锁的时候可以响应中断; 可以让线程尝试获取锁 ...
分类:
编程语言 时间:
2018-11-26 00:12:38
阅读次数:
165
读锁:LOCK in SHARE MODE 写锁:for UPDATE 行锁 (锁住某行数据) SELECT name FROM t_goods_info where code = 'huawei' for UPDATE; 页锁 (锁住某些数据) SELECT NAME FROM t_goods_i ...
分类:
数据库 时间:
2018-11-22 18:59:29
阅读次数:
224
并发编程-“公平锁”的获取锁机制 细节说明 title: 并发编程-“公平锁”的获取锁机制 细节说明date: 2018-07-05 09:06:57categories: - 并发编程 <Excerpt in index | 首页摘要><!-- more --> - 本章对本文的公平锁指的是互斥锁 ...
分类:
其他好文 时间:
2018-11-20 15:08:06
阅读次数:
200