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

漯河网站建设兼职php免费网站系统

漯河网站建设兼职,php免费网站系统,重庆涪陵网站设计公司推荐,域名拍卖1 AQS抽象的队列同步器#xff0c;AQS定义了一套多线程访问共享资源的同步器框架#xff0c;许多同步类实现都依赖于它#xff0c;如常用的ReentrantLock/Semaphore/CountDownLatch 首先AQS维护了一个volatile 修饰的state和一个FIFO的同步队列#xff08;多线程争用资源被…1 AQS抽象的队列同步器AQS定义了一套多线程访问共享资源的同步器框架许多同步类实现都依赖于它如常用的ReentrantLock/Semaphore/CountDownLatch 首先AQS维护了一个volatile 修饰的state和一个FIFO的同步队列多线程争用资源被阻塞时会进入此队列state的作用主要是用来表示当前锁的一个状态。这里volatile是核心关键词具体volatile的语义在此不述。state的访问方式有三种: getState() // 获得state setState() //设置state compareAndSetState() //cas自旋设置stateAQS定义两种资源共享方式Exclusive独占只有一个线程能执行如ReentrantLock和Share共享多个线程可同时执行如Semaphore/CountDownLatch。   不同的自定义同步器争用共享资源的方式也不同。自定义同步器在实现时只需要实现共享资源state的获取与释放方式即可至于具体线程等待队列的维护如获取资源失败入队/唤醒出队等AQS已经在顶层实现好了。自定义同步器实现时主要实现以下几种方法 isHeldExclusively()该线程是否正在独占资源。只有用到condition才需要去实现它。 tryAcquire(int)独占方式。尝试获取资源成功则返回true失败则返回false。 tryRelease(int)独占方式。尝试释放资源成功则返回true失败则返回false。 tryAcquireShared(int)共享方式。尝试获取资源。负数表示失败0表示成功但没有剩余可用资源正数表示成功且有剩余资源。 tryReleaseShared(int)共享方式。尝试释放资源如果释放后允许唤醒后续等待结点返回true否则返回false。以ReentrantLock举例 初始为0表示当前是没有线程获得锁的状态例如当A线程调用lock()时会调用tryAcquire()来独占该锁并将state1此后其他线程再tryAcquire()时就会失败直到A线程unlock()到state0即释放锁为止直到线程调用unlock()释放锁并且state为0时其他线程才可以获得该锁当然锁释放之前A线程是可以继续获得锁的并且每次重复获得state1,这就是可重入锁的实现原理当然A线程释放锁需要释放到state为0为止其他线程才可以获得锁。 再以CountDownLunch举例 任务分为N个子线程去执行state也初始化为N注意N要与线程个数一致。这N个子线程是并行执行的每个子线程执行完后countDown()一次state会CAS减1。等到所有子线程都执行完后(即state0)会unpark()主调用线程然后主调用线程就会从await()函数返回继续后余动作。 private volatile int state;2 acquire(int)   此方法是独占模式下线程获取共享资源的顶层入口。如果获取到资源线程直接返回否则进入等待队列直到获取到资源为止且整个过程忽略中断的影响。这也正是lock()的语义当然不仅仅只限于lock()。获取到资源后线程就可以去执行其临界区代码了。下面是acquire()的源码 public final void acquire(int arg) {if (!tryAcquire(arg) acquireQueued(addWaiter(Node.EXCLUSIVE), arg))selfInterrupt(); }tryAcquire()尝试直接去获取资源如果成功则直接返回这里体现了非公平锁每个线程获取锁时会尝试直接抢占加塞一次而CLH队列中可能还有别的线程在等待addWaiter()将该线程加入等待队列的尾部并标记为独占模式acquireQueued()使线程阻塞在等待队列中获取资源一直获取到资源后才返回。如果在整个等待过程中被中断过则返回true否则返回false。如果线程在等待过程中被中断过它是不响应的。只是获取资源后才再进行自我中断selfInterrupt()将中断补上。 学习的博客并引用过来记录一下http://www.cnblogs.com/waterystone/p/4920797.html
http://www.pierceye.com/news/467679/

相关文章:

  • 温州网站推广排名哪家购物网站建设好
  • 宿迁做网站公司哪家好中国建设监理协会化工监理协会网站
  • 网站建设广州天河常州企业自助建站系统
  • 厦门网站建设u贷款在线申请
  • 做肮脏交义的网站南宁住房和城乡建设局网站
  • 办网站需要什么my23777免费域名查询
  • 销售网站开发步骤网站域名到期了怎么办
  • 怎么做注册账号的网站网页打不开视频播放不了是什么问题
  • 江阴市住房和城乡建设局网站免费网页游戏poki
  • 个人网站设计网站建设的基本特点
  • 泉州专业做网站网站被k 原因
  • 18款禁用网站app直播建设部资质网站
  • 免费完整版的网站模板商丘行业网站建设开发公司
  • 网站与微网站区别推广通
  • 京东网站建设的意义wordpress美图
  • 佛山市外贸网站建设公司营销型网站建设 兼职
  • 四川省城乡与建设厅网站中国十大it培训机构排名
  • 国家高新技术企业查询网站汕头整站优化
  • asp网站生成静态在线网站软件免费下载
  • wordpress古腾堡编辑器广州建网站开发seo型企业网站
  • 易云巢做营销型网站wordpress下载视频播放器
  • google网站哪里找人做网站
  • 外贸网站建设如何做呢百度热搜风云榜
  • ASP网站建设实训报告总结山西建设公司网站
  • 网站建设使用的什么软件房屋设计风格
  • 厦门网站建设公司排名杭州小型网站建设服务
  • 西安建设主管部门官方网站中文搭建式软件开发工具
  • 南通网站建设论文网站首页导航栏怎么做
  • 建设网站的运行费包括什么北京市建设工程信息网安徽兴创
  • 我想在泉州做网站上上海网站设计