摘要: 在多线程编程中,锁是常用地控制并发的机制,对于临界区的资源,需要保证线程之间互斥地访问。 1. 可重入锁 可重入锁,也叫做递归锁,指的是多次对同一个锁进行加锁操作,都不会阻塞线程。实现思路:记录当前锁正在被哪个线程使用,采用计数来统计lock和unlock的调用次数。正常情况下,lock和unloc 阅读全文
posted @ 2020-02-26 19:51 wengle 阅读(896) 评论(3) 推荐(1) 编辑
摘要: 乐观锁、悲观锁是从其使用角度来看。(PS:比如ReentrantLock内部实现用到了CAS和自旋来提高性能,但是从其使用角度来看,是用到了悲观锁的思想。) 1. 乐观锁 乐观锁:顾名思义就是在操作时很乐观,认为操作不会产生并发问题(不会有其他线程对数据进行修改),因此不会上锁。但是在更新时会判断其 阅读全文
posted @ 2020-02-26 18:32 wengle 阅读(249) 评论(0) 推荐(0) 编辑