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

网站备案都审核什么资料旅游网站开发的背景及意义

网站备案都审核什么资料,旅游网站开发的背景及意义,网站开发 顺德,深圳平面设计公司排行文章目录 1. 简介2. 基于AQS实现自定义锁 1. 简介 AQS时AbstractQueueSynchronizer#xff0c;是阻塞式锁的同步器工具的框架。AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器。特点如下#xff1a; 用State属性来表示资源的状态… 文章目录 1. 简介2. 基于AQS实现自定义锁 1. 简介 AQS时AbstractQueueSynchronizer是阻塞式锁的同步器工具的框架。AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器。特点如下 用State属性来表示资源的状态分独占模式和共享模式子类需要定义如何维护这个状态控制如何获取锁和释放锁 getState获取state状态setState设置state状态compareAndSetStateCAS机制设置State状态独占模式是只有一个线程能够访问资源而共享模式可以运行多个线程访问资源 提供了基于FIFO的等待队列类似于Monitor的EntryList条件变量来实现等待和唤醒机制支持多个条件变量类似于Monitor的WaitSet 子类主要实现这样一些方法默认抛出UnsupportedOperationException tryAcquiretryReleasetryAcquireSharedtryReleaseSharedisHeldExclusively 获取锁 //如果获取锁失败 if(!tryAcquire(arg)){//入锁可以选择阻塞当前线程,park和unpark机制实现 }释放锁 //如果释放锁成功 if(tryRelease(arg)){}2. 基于AQS实现自定义锁 //自定义锁类这里是不可重用锁 class Mylock implements Lock {//实现同步器类我这里实现独占锁class Mysync extends AbstractQueuedSynchronizer {Overrideprotected boolean tryAcquire(int arg) {if (compareAndSetState(0, 1)) {//加锁成功设置当前锁的ownersetExclusiveOwnerThread(Thread.currentThread());return true;}return false;}Overrideprotected boolean tryRelease(int arg) {setState(0);setExclusiveOwnerThread(null);return true;}Override //是否持有独占锁protected boolean isHeldExclusively() {return getState() 1;}public Condition newCondition() {return new ConditionObject();}}private Mysync mysync new Mysync();//用于加锁不成功则进入等待队列等待Overridepublic void lock() {mysync.acquire(1);}//可打断的加锁Overridepublic void lockInterruptibly() throws InterruptedException {mysync.acquireInterruptibly(1);}//尝试加锁Overridepublic boolean tryLock() {return mysync.tryAcquire(1);}//尝试加锁带超时时间Overridepublic boolean tryLock(long time, TimeUnit unit) throws InterruptedException {return mysync.tryAcquireNanos(1,unit.toNanos(time));}Overridepublic void unlock() {mysync.release(1);}//创建条件变量Overridepublic Condition newCondition() {return mysync.newCondition();} }测试自己实现的自定义锁 Slf4j public class TestFinal {public static void main(String[] args) {Mylock mylocknew Mylock();new Thread(()-{mylock.lock();try{log.debug(locking.....);Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);} finally {log.debug(unlocking....);mylock.unlock();}},t1).start();new Thread(()-{mylock.lock();try{log.debug(locking.....);}finally {log.debug(unlocking....);mylock.unlock();}},t2).start();} }
http://www.yutouwan.com/news/126813/

相关文章:

  • 赣州网站建设顺企网南京网站外包
  • 网站的登录弹窗怎么做淘宝的好券网站怎么做
  • 网站设计与开发未来发展方向wordpress网站类型
  • 建设一个网站的具体步骤做亳州旅游网站的目的
  • 以营销导向型建设网站方案站内推广的方法
  • 一键开启网站北京有哪些不错的互联网公司
  • 利用论坛推广网站优质做网站费用
  • 搭建网站需要注意什么网站策划与建设阶段
  • 建设网站的企业乱码链接怎么用
  • 坪地网站建设包括哪些软件开发模型名词解释
  • 二手交易网站建设方案ppt辽宁建设工程信息网场内业绩什么意思
  • 微信网站开发服务网络系统分类
  • 专做土特产的网站广告公司企业简介
  • 深圳做二维码网站建设素材网站有哪些
  • 上海网站设计哪家强wordpress腾讯云CDN配置
  • 关于网站建设的工作计划seo技巧课程
  • 免费永久网站制作上线了做的网站可以登陆
  • 深圳网站开发哪家专业wordpress win2003
  • 网站建设有前途营销网站费用
  • 绍兴网站建设服务深圳网站建设空间
  • 网站建设 百度云哈尔滨市建设安全监察网站
  • 您有新信息 建设招标网官方网站有创意的网络公司名字
  • 自建网站步骤wordpress建站吧
  • 广州英文网站制作施工企业的施工生产计划与建设
  • 北京著名网站建设公司网站可信认证在哪里做
  • 黄骅网站客户评价网站建设
  • 网站开发后台做些什么常州网络推广
  • 网站建设哪家信誉好电子商务网站建设软件
  • 专门做图片的网站cms门户网站建站合同
  • 网站建设自助建站企业阳泉市编办网站三基建设