ConcurrentHashMap性能高于HashTable,都能够完成线程安全操作, Hashtable中线程安全使用synchronized同步方法进行加锁操作,如果当前一个线程正在访问该集合,其他线程是无法进行访问的,需要进行等待反之ConcurrentHashMap当中采用分段锁机制 JDK ...
分类:
其他好文 时间:
2020-03-17 19:45:59
阅读次数:
59
乐观锁和悲观锁 悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 ...
分类:
编程语言 时间:
2020-03-15 20:43:39
阅读次数:
80
二.嵌入式工程师在企业工作的真实内容嵌入式软件开发具体可以分三类:嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指 ...
分类:
其他好文 时间:
2020-03-13 18:54:35
阅读次数:
82
1. 前言 在内核开发过程中,经常遇到这种情况:共享数据的临界区即位于进程上下文,也处于中断上下文。这时该如何保护呢?首先可以肯定的是涉及睡眠的锁不能使用了,因为中断上下文不能睡眠。 这时应该考虑使用spinlock自旋锁。 2. 自旋锁的特点 spin lock是一种死等的锁机制。当前的执行例程会 ...
分类:
系统相关 时间:
2020-03-11 23:54:54
阅读次数:
121
《Concurrent包中的锁机制》http://www.iteye.com/topic/333669《java.util.concurrent 之ConcurrentHashMap 源码分析》http://www.iteye.com/topic/977348《ConcurrentHashMap之实... ...
分类:
其他好文 时间:
2020-03-03 14:54:42
阅读次数:
58
1.为什么使用锁: 解决并发操作数据引起脏读,数据不一致的情况; 锁对象:java中任何非null对象; 2.实现方法: 有两种方式:synchronized关键字和并发包中的锁类 // (1):加静态方法上面,表示会监视这个类对象 public static synchronized void s ...
分类:
其他好文 时间:
2020-02-18 20:16:19
阅读次数:
84
什么是线程安全 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 例如:String ...
分类:
编程语言 时间:
2020-02-17 16:06:20
阅读次数:
78
第一部分 悲观锁 1 概念(来自百科) 悲观锁,正如其名,它指的是对数据被外界(包括当前系统的其它事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排它性,否则, ...
分类:
数据库 时间:
2020-02-15 13:30:28
阅读次数:
71
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。 传统的关系型数据库中用到了很多这种锁机制,比如行级锁、表级锁、读锁、写锁等,都是在做操作之前先上锁。 使用场景:多写的场景 实现方式:加锁 乐观锁 总是假设最好的情况,每次去拿数据的时候都认为别人不会修 ...
分类:
数据库 时间:
2020-02-13 23:17:36
阅读次数:
129