Java并发编程有哪些最佳实践可以分享?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1073个文字,预计阅读时间需要5分钟。
目录
一、读写锁
二、欢迎关注我的博客
更多精品知识集合一、读写锁
在我的《Java并发编程》一文中,为大众介绍了《ReentrantReadWrit锁》。 目录- 一、读写锁
- 二、悲观读锁
- 三、乐观读
- 欢迎关注我的博客,更多精品知识合集
在我的《java并发编程》上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据,或者可以同时有多个线程读数据,但读写不能同时进行。
比如你正在做的是日志,有一个线程正在做写操作,但是在写日志的时候你可能需要把日志集中转移到集中管理日志服务,但是此时读线程不能读数据(因为无法获取读锁)。面对这个需求,ReentrantReadWriteLock显然不是我们的解决方案,我们希望:最多一个线程在进行写操作(加写锁),但是同时允许多个线程进行读操作(加读锁),解决方案是StampedLock。
二、悲观读锁StampedLock 同样可以实现写锁和读锁的功能,Stamped在英文中有印章的含义,对于StampedLock大家可以这么理解,使用一个印章加锁,必须使用该印章解锁。
本文共计1073个文字,预计阅读时间需要5分钟。
目录
一、读写锁
二、欢迎关注我的博客
更多精品知识集合一、读写锁
在我的《Java并发编程》一文中,为大众介绍了《ReentrantReadWrit锁》。 目录- 一、读写锁
- 二、悲观读锁
- 三、乐观读
- 欢迎关注我的博客,更多精品知识合集
在我的《java并发编程》上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据,或者可以同时有多个线程读数据,但读写不能同时进行。
比如你正在做的是日志,有一个线程正在做写操作,但是在写日志的时候你可能需要把日志集中转移到集中管理日志服务,但是此时读线程不能读数据(因为无法获取读锁)。面对这个需求,ReentrantReadWriteLock显然不是我们的解决方案,我们希望:最多一个线程在进行写操作(加写锁),但是同时允许多个线程进行读操作(加读锁),解决方案是StampedLock。
二、悲观读锁StampedLock 同样可以实现写锁和读锁的功能,Stamped在英文中有印章的含义,对于StampedLock大家可以这么理解,使用一个印章加锁,必须使用该印章解锁。

