当前位置: 首页 > news >正文

什么是网络营销工具站长之家seo查找

什么是网络营销工具,站长之家seo查找,大连开发区信息服务平台,wordpress从哪里登录密码1 介绍 为什么要使用读写锁#xff1f; 需要高并发读取和较低并发写入的应用程序#xff0c;降低锁的粒度#xff0c;提高系统性能 使用场景#xff1a; 读多写少的共享资源 缓存管理#xff1a;读 写#xff0c;控制多个线程同时读缓存#xff0c;需要刷新o…1 介绍 为什么要使用读写锁 需要高并发读取和较低并发写入的应用程序降低锁的粒度提高系统性能 使用场景 读多写少的共享资源 缓存管理读 写控制多个线程同时读缓存需要刷新or修改操作时才使用写锁 数据库连接池多个线程从池中获取连接读操作只有一个线程可以设置连接到池中写操作 文件读写 数据结构的并发访问 2 使用 import java.util.concurrent.locks.ReentrantReadWriteLock;public class SharedResource {private final ReentrantReadWriteLock lock new ReentrantReadWriteLock();private final ReentrantReadWriteLock.ReadLock readLock lock.readLock();private final ReentrantReadWriteLock.WriteLock writeLock lock.writeLock();public void readFromResource() {readLock.lock(); // 获取读锁try {// 执行读取共享资源的操作} finally {readLock.unlock(); // 释放读锁}}public void writeToResource() {writeLock.lock(); // 获取写锁try {// 执行写入共享资源的操作} finally {writeLock.unlock(); // 释放写锁}} }3 原理分析 读写锁两个状态读状态、写状态 但AQS中只有一个state如何记录两种状态 高低位int4个字节共32位采用高16位控制读低16位控制写 00000000 00000000 00000000 00000000 加锁时如何判断读锁、写锁 高16位0表示有读锁sharedCount() 低16位0表示有写锁exclusiveCount() 如何实现可重入 写锁只有一个线程独占重入则低16位1即可 写锁有多个线程持有如何记录ThreadLocal线程私有 4 读锁源码 读锁tryAcquireShared()、tryReleaseShared()读读共享 protected final int tryAcquireShared(int unused) {Thread current Thread.currentThread();int c getState();//是否其它线程占用排它锁如果是则不允许获取共享锁if (exclusiveCount(c) ! 0 getExclusiveOwnerThread() ! current)return -1;//共享锁被获取的数量int r sharedCount(c);//获取共享锁//1 未阻塞//2 不超最大读计数//3 设置共享锁成功if (!readerShouldBlock() r MAX_COUNT compareAndSetState(c, c SHARED_UNIT)) {//第一次读if (r 0) {firstReader current;firstReaderHoldCount 1;//重入} else if (firstReader current) {firstReaderHoldCount;} else {//其它线程读HoldCounter rh cachedHoldCounter;if (rh null || rh.tid ! getThreadId(current))//记录每个线程的重入次数cachedHoldCounter rh readHolds.get();else if (rh.count 0)readHolds.set(rh);rh.count;}return 1;}//若不满足上述条件则执行方法内的获取共享锁逻辑return fullTryAcquireShared(current);} final int fullTryAcquireShared(Thread current) {HoldCounter rh null;//1 自旋 获取共享锁or失败for (;;) {int c getState();//2 若存在写锁且不是当前线程持有的不允许获取共享锁if (exclusiveCount(c) ! 0) {if (getExclusiveOwnerThread() ! current)return -1;//3 读线程阻塞} else if (readerShouldBlock()) {if (firstReader current) {} else {if (rh null) {rh cachedHoldCounter;if (rh null || rh.tid ! getThreadId(current)) {rh readHolds.get();if (rh.count 0)readHolds.remove();}}if (rh.count 0)return -1;}}// 4 不允许再申请共享锁if (sharedCount(c) MAX_COUNT)throw new Error(Maximum lock count exceeded);// 5 尝试获取锁if (compareAndSetState(c, c SHARED_UNIT)) {if (sharedCount(c) 0) {firstReader current;firstReaderHoldCount 1;} else if (firstReader current) {firstReaderHoldCount;} else {if (rh null)rh cachedHoldCounter;if (rh null || rh.tid ! getThreadId(current))rh readHolds.get();else if (rh.count 0)readHolds.set(rh);rh.count;cachedHoldCounter rh; // cache for release}return 1;}}} 5 写锁源码 写锁tryAcquire()、tryRelease()写写互斥读写互斥 protected final boolean tryAcquire(int acquires) {Thread current Thread.currentThread();int c getState();int w exclusiveCount(c);if (c ! 0) {// (Note: if c ! 0 and w 0 then shared count ! 0)if (w 0 || current ! getExclusiveOwnerThread())return false;if (w exclusiveCount(acquires) MAX_COUNT)throw new Error(Maximum lock count exceeded);// Reentrant acquiresetState(c acquires);return true;}if (writerShouldBlock() ||!compareAndSetState(c, c acquires))return false;setExclusiveOwnerThread(current);return true;}
http://www.w-s-a.com/news/961619/

相关文章:

  • 衡水做网站推广的公司wordpress相册滑动
  • 不用域名也可以做网站公司网站建设制作难么
  • 学做网站培训机构wordpress 图片拉伸
  • 成都捕鱼网站建设wordpress自定义文章类别
  • wordpress网站怎么加速湖北网站建设企业
  • 迁安做网站中的cms开发南平网站建设公司
  • 肥西县住房和城乡建设局网站代驾系统定制开发
  • 网站建设明细报价表 服务器qq是哪家公司的产品
  • html链接网站模板wordpress怎么调用简码
  • 网站域名怎么查简述网站推广的五要素
  • 咸宁网站设计公司app安装下载
  • 丝网外贸做哪些网站最优的赣州网站建设
  • 如何做网站不被查网站开发工程师岗位说明书
  • 做网站需要vps吗网站建设后怎样发信息
  • 网站建立风格二手交易网站开发可参考文献
  • 成都微信网站开发优化大师优化项目有哪些
  • 哪个网站做自考题目免费郑州网站建设公司qq
  • 地方性的网站有前途顺的网络做网站好不好
  • 学校申请建设网站的原因不要网站域名
  • 推荐响应式网站建设子域名查询工具
  • 如何建设学校的微网站广告推广是什么
  • 设计类专业哪个就业前景好网站建设seoppt
  • 济南建站公司网站网站友链查询源码
  • 校园失物招领网站建设涪陵网站建设公司
  • 怎么做盗号网站手机网站建设需要租用什么科目
  • 成品网站是什么意思沈阳seo推广
  • 购物网站后台流程图昆明官网seo技术
  • 创建自己网站全网零售管理系统
  • 江苏省建设厅网站建筑电工证wordpress收费插件大全
  • 北京中国建设银行招聘信息网站宁德蕉城住房和城乡建设部网站