Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景 线程安全: Vector:如果创建Vector时没有指定容量,则默认容量为10,底层基于数组实现,线程是安全的,底层采用synchronized同步方法进行加锁 添加方法 查询方法 ArrayList:底层基于数 ...
分类:
其他好文 时间:
2020-03-15 15:09:06
阅读次数:
66
Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景 线程安全: Vector:如果创建Vector时没有指定容量,则默认容量为10,底层基于数组实现,线程是安全的,底层采用synchronized同步方法进行加锁 ArrayList:底层基于数组,线程不安全,查询 ...
分类:
其他好文 时间:
2020-03-15 13:06:49
阅读次数:
55
1.单列集合List 1.1 Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景 线程安全: Vector:如果创建Vector时没有指定容量,则默认容量为10,底层基于数组实现,线程是安全的,底层采用synchronized同步方法进行加锁 ArrayList: ...
分类:
其他好文 时间:
2020-03-14 18:39:21
阅读次数:
58
易错点1:锁一个可变对象 package cn.enjoyedu.ch1.syn; /** * 类说明:错误的加锁和原因分析 */ public class TestIntegerSyn { public static void main(String[] args) throws Interrup ...
分类:
编程语言 时间:
2020-03-14 00:59:20
阅读次数:
78
答案: 封锁技术通常采用两种锁:排他锁(x锁),共享锁(S锁)。 X锁:如果事务对数据R实现X锁则其他事务必须要等待该事物解除X锁之后才能对该数据进行封锁。 S锁:如果事务对数据R实现S锁,则其他事务仍可以对该数据加S锁,但在事务对该数据没有解除S锁之前,其他任何事务不能对该数据加X锁。 SQL的数 ...
分类:
数据库 时间:
2020-03-13 21:02:49
阅读次数:
181
1:synchronized(同步的) 锁住代码块. 同步代码块 1 synchronized(对象){ // 对象锁. 一定要注意,这个对象是同一个对象.!!!!!! "abc" 2 //代码块 3 } 4 5 同一个时间片,只有一个线程来访问这个代码块. 2: synchronized 锁住方法 ...
分类:
编程语言 时间:
2020-03-12 21:49:14
阅读次数:
92
Java深入学习03:happens-before规则 为什么会有happens-before 规则? 因为jvm会对代码进行编译优化,指令会出现重排序的情况,为了避免编译优化对并发编程安全性的影响,需要happens-before规则定义一些禁止编译优化的场景,保证并发编程的正确性。 1. 规则一 ...
分类:
移动开发 时间:
2020-03-12 18:46:32
阅读次数:
78
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。
分类:
编程语言 时间:
2020-03-12 09:33:28
阅读次数:
66
Python——互斥锁 1.进程之间的数据不能共享,但是共享同一套文件系统,所以访问同一个文件,或者同一个打印终端,是没有问题的,而共享带来的是竞争竞争带来是错乱 2.如何控制,就是加锁处理,而互斥锁就是互相排斥,假设把多个进程比喻成多个人,互斥锁的工作原理是多个人都要去争抢同一个资源:比如抢一个房 ...
分类:
编程语言 时间:
2020-03-11 15:32:55
阅读次数:
60
1. 减库存 一般下单减库存的流程大概是这样的: 1、查询商品库存。这里直接查的Redis中的库存。 2、Redis中的库存减1。这里用到的Redis命令是:incrby -1 3、扣减数据库中的库存。这里用数据库乐观锁,不用额外加锁 4、异步刷新Redis中的库存 5、定时扫描超时未支付的交易,库 ...
分类:
其他好文 时间:
2020-03-09 21:18:04
阅读次数:
85