随手记-2019.6.30

1.事务 丢失更新问题(数据写问题)

悲观锁 不怎么用  数据库锁的机制,在sql语句后 for update

乐观锁  javaBean对象加新的属性 version(相当于加版本号,事务提交时比较版本号,版本号不相等,侧不提交事务,抛出异常)

2.数据库 读问题  脏读 不可重复读等

设置数据库隔离级别来解决上述问题

共享锁 又叫读锁,其他事务可以继续加共享锁,但是不能加排它锁

排它锁 又叫写锁,一旦加了写锁,其他事务便不能再加锁

意向锁 一个表中某几行的锁

记录锁 锁的是索引记录

间隙锁(gap锁)

自增长锁  sql执行完即释放,并不是事务执行完

3. Lock Condition对象

锁用来保护临界区代码,条件对象用来管理已经进入被保护代码段但还不能执行的线程

可以使用Synchronized wait() notifyAll() 来代替上面的锁和条件写法,因为每个对象都有一个内部锁,并且每个锁有一个内部条件。

如果涉及读写分类的话,可以利用效率更好的读写锁 ReentrantReadWriteLock()  

自己编写,可以使用堵塞队列来管理线程 例如:ArrayBlockingQueue LinkedBlockQueue

4.对于可能报错的代码,要用try catch 包装起来,用日志 或者 抛出异常的方式处理

5.测试代码是否可以正确运行时,可以编写测试类;也可以直接在类中写main方法,直接测试。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值