多线程 : 读写锁实现缓存系统
来源:互联网 发布:花与剑 js 编辑:程序博客网 时间:2024/06/10 20:22
import java.util.HashMap;import java.util.Map;import java.util.Random;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class CacheSystem {public static void main(String[] args) {// 测试缓存器final CacheSystem cache = new CacheSystem();for (int i = 0; i < 3; i++) {new Thread(new Runnable() {public void run() {while (true) {int num = new Random().nextInt(10);String key = num + "";Object result = cache.get(key);System.out.println(Thread.currentThread().getName() + "正在查询:" + key);try {Thread.sleep(num * 1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(Thread.currentThread().getName() + "查询结果为:" + key + "=" + result);}}}).start();}}// 内部存储器private Map<String, Object> cache = new HashMap<String, Object>();private ReadWriteLock rwl = new ReentrantReadWriteLock();public Object get(String key) {// 上读锁rwl.readLock().lock();Object value = cache.get(key);if (value == null) {// 释放读锁,加写锁rwl.readLock().unlock();rwl.writeLock().lock();if (value == null) {value = "value";cache.put(key, value);}// 还原读锁,释放写锁rwl.readLock().lock();rwl.writeLock().unlock();}// 释放读锁rwl.readLock().unlock();return value;}}
1 0
- 多线程 : 读写锁实现缓存系统
- 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统
- 读写锁实现缓存系统
- 用读写锁实现一个缓存系统
- 读写锁实现缓存系统demo
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- Java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- 设计一个缓存系统 java多线程读写锁的应用
- C++实现多线程读写锁
- C++实现多线程读写锁
- C++实现多线程读写锁
- 利用读写锁写一个缓存系统
- 利用读写锁模拟一个缓存系统
- 《黑马程序员》 读写锁之缓存系统
- java读写锁设计缓存系统
- 使用读写锁设计缓存系统
- Trace the process of the start of Linux
- OAuth2.0认证和授权原理
- 欢迎使用CSDN-markdown编辑器
- POJ 3398 Perfect Service(树形DP)
- 算法起步(2)
- 多线程 : 读写锁实现缓存系统
- Computing Classification Evaluation Metrics in R
- java学习笔记-集合
- 索引器方法
- 蓝桥杯_分糖果试题
- 对话框
- [wireshark] The NPF driver isn't running 解决办法( wireshark NPF拒绝访问问题)
- java项目 主页面的分层(上-左右)
- 为新中国成立作出突出贡献的 "100位英雄模范人物" 是谁,你知道吗?