码迷,mamicode.com
首页 >  
搜索关键字:加锁    ( 2232个结果
多线程关于腾讯笔试题
今天在头条上看到一道据说是腾讯的笔试题,闲来无事,准备验证一下! 题目如下: 有一个变量int a=0;两个线程同时进行+1操作,每个线程加100次,不加锁,最后a的值是()? 根据我的理解答案不唯一,最大是两百,最小是2吧。直接上代码: i++不是原子(就是只由一条指令构成的)操作,也就是说,它不 ...
分类:编程语言   时间:2016-06-18 23:56:35    阅读次数:351
java线程的等待、通知机制【读书笔记】
代码示例: 输出如下: 调用wait() notify() notifyAll()方法时需要注意的细节: 1)使用wait() notify() notifyAll() 时需要先对调用对象加锁; 2)调用wait()方法后,线程状态由RUNNING 变为WAITING,并将当前线程放置到对象的等待队 ...
分类:编程语言   时间:2016-06-18 15:29:10    阅读次数:151
MVCC浅析(转)
在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但是,读操作会被写操作阻塞,大幅降低读性能。在java concurrent包中,有copyonwrite系列的类, ...
分类:Web程序   时间:2016-06-16 01:40:47    阅读次数:181
Java多线程6:synchronized锁定类方法、volatile关键字及其他
同步静态方法 synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法: 写三个线程分别调用这三个方法: 写个main函数启动这三个线程: 看一下运行结果: 从运行结果来,对printC( ...
分类:编程语言   时间:2016-06-15 19:14:52    阅读次数:191
mysql事务隔离级别
MYSQL的锁 1. 共享锁,也就是读锁,可以通过select ... lock in share mode强制加锁,默认select语句是不加锁的 2. 排他锁,也就是写锁,可以通过select ... for update强制加写锁,默认情况下insert, update, delete语句加写 ...
分类:数据库   时间:2016-06-15 15:41:52    阅读次数:204
分布式事务实现-Spanner
Spanner要满足的external consistency 是指:后开始的事务一定可以看到先提交的事务的修改。所有事务的读写都加锁可以解决这个问题,缺点是性能较差。特别是对于一些workload中只读事务占比较大的系统来说不可接受。为了让只读事务不加任何锁,需要引入多版本。在单机系统中,维护一个 ...
分类:其他好文   时间:2016-06-15 12:22:02    阅读次数:139
MySQL行级锁、表级锁、页级锁详细介绍
这篇文章主要介绍了MySQL行级锁、表级锁、页级锁详细介绍,同时列举了一些实例说明,需要的朋友可以参考下 页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行 ...
分类:数据库   时间:2016-06-15 12:13:24    阅读次数:178
with(nolock) 仍然会申请加锁
with(nolock) table hint 不意味着不会加锁,使用 Trace Flag 1200 返回加锁的整个过程,是学习加锁过程的得力工具 Step1,设置事务隔离级别为 Read Committed,然后使用with(nolock) table hint,查看加锁过程 在第一次执行该语句 ...
分类:其他好文   时间:2016-06-14 14:21:38    阅读次数:592
JUC源码分析15-集合-ConcurrentHashMap
好几天没看juc了,之前看了HashMap,还有个差不多的HashTable,二者的结构大致相同,小小的比较下2者的不同: 1.HashMap是非线程安全的,HashTable通过synchronized加锁实现线程安全。如果我们的代码里存在{get();...;put()}这种操作的话就保证不了; 2.HashMap可以存储key或value为null的值,HashTable不行; 3.初...
分类:其他好文   时间:2016-06-12 03:29:07    阅读次数:171
并发编程学习
1,java内存模型(JMM):主内存与工作内存:主内存存储了所有变量,每条线程有自己的工作内存,工作内存保存在被线程使用的变量和主内存变量的副本,线程操作必须在工作内存中进行,不能直接读取主内存而线程间的值传递需要主内存。 ,内存操作有8条语句均是原子的。 2,线程同步的方法(多个线程对共享数据的竞争是线程不安全的因素) 线程同步总体可分为有锁同步和无锁同步。有锁同步就是加锁,主要包括sy...
分类:其他好文   时间:2016-06-12 02:07:58    阅读次数:354
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!