线程安全就是多线程訪问时,採用了加锁机制,当一个线程訪问该类的某个数据时,进行保护,其它线程不能进行訪问直到该线程读取完,其它线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据訪问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据==============...
分类:
编程语言 时间:
2014-10-07 16:40:03
阅读次数:
213
如何选择合适的存储引擎几个常用存储引擎的特点下面我们重点介绍几种常用的存储引擎并对比各个存储引擎之间的区别和推荐使用方式。特点 Myisam BDB Memory InnoDB Archive存储限制 没有 没有 有 64TB 没有事务安全 支持 支持 锁机制 表锁 页锁 表锁 行锁 行锁B树索引 支持 支..
分类:
数据库 时间:
2014-10-07 14:27:16
阅读次数:
239
锁是处理数据库事务并发的一种技术,当两个或更多数据库事务并发地访问相同数据时,锁可以保证同一时间只有一个事务可以修改数据。锁的方法通常有两种:乐观锁和悲观锁。乐观锁认为多个并发事务之间很少出现冲突,也就是说不会经常出现同一时间读取或修改相同数据,在乐观锁中,其目标是让并发事务自由地同时得到处理,而不是发现或预防冲突。两个事务在同一时刻可以访问相同的数据,但为了预防冲突,需要对数据执行一次检查,检查...
分类:
其他好文 时间:
2014-09-30 23:59:30
阅读次数:
198
转自:http://blog.csdn.net/yangzhijun_cau/article/details/6432216一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁);如果这个时候同步对象的锁被其他...
分类:
编程语言 时间:
2014-09-29 00:16:55
阅读次数:
326
Linux系统中的线程通信方式主要以下几种:*锁机制:包括互斥锁、条件变量、读写锁进程通信:管道(PIPE):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系(父子进程)的进程间使用。另外管道传送的是无格式的字节流,并且管道缓冲区的大小是有限的(管道缓冲区存在于内存中,在管道创建...
分类:
编程语言 时间:
2014-09-26 23:35:48
阅读次数:
246
常识,之前有的没搞清楚,导致写代码时不少疑惑。
比较典型的同步例子,用了两个Condition,notEmpty和notFull,分别对应两个lock,takeLock和putLock。查看take的代码:
E x;
int c = -1;
final AtomicInteger count = this.count;
final AtomicInteger takeLock = thi...
分类:
数据库 时间:
2014-09-21 01:53:59
阅读次数:
533
加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性。public class NoVisibility { private static boolean ready; private static int number; private stat...
分类:
其他好文 时间:
2014-09-20 18:36:39
阅读次数:
213
MySQL 不同引擎的锁机制:MyISAM和MEMORY采用表级锁(table-levellocking)BDB采用页面锁(page-levelocking)或表级锁,默认为页面锁InnoDB支持行级锁(row-levellocking)和表级锁,默认为行级锁锁特点:表级锁:开销小,加锁快;不会出现...
分类:
数据库 时间:
2014-09-20 08:49:36
阅读次数:
191
依靠数据默认的机制:Hibernate的加锁模式有:Ø LockMode.NONE : 无锁机制。Ø LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动获取。Ø LockMode.READ : Hibernate在读取记录的时候会自动获取。以上这三种锁机制...
分类:
系统相关 时间:
2014-09-17 07:50:01
阅读次数:
206
在数据库实现中,通过锁定机制控制数据库的并发访问,保证数据库访问的正确性。根据定义:
锁定是一种并发控制机制:它可以确保数据在同一事务中和不同事务之间保持一致。在多用户环境中,由于几个用户可能会在同一时间使用同一数据,因此需要锁定功能。...
分类:
数据库 时间:
2014-09-15 03:18:48
阅读次数:
311