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

用html5做商城网站怎么做公司网站建设优点

用html5做商城网站怎么做,公司网站建设优点,wordpress内外网访问,影视动画设计专业一、AQS AQS名字为一个抽象队列同步器,是一个抽象类。它提供了一个框架,ReentrantLock、Semaphore和CountDownLatch都是基于AQS实现的。 首先,AQS中提供了一个由volatile修饰的int类型的共享资源,就是state变量。在ReentrantLock…

一、AQS

AQS名字为一个抽象队列同步器,是一个抽象类。它提供了一个框架,ReentrantLock、Semaphore和CountDownLatch都是基于AQS实现的。

首先,AQS中提供了一个由volatile修饰的int类型的共享资源,就是state变量。在ReentrantLock的实现类中,state用来表示锁的占有情况,包括可重入计数,当state的值为0的时候,标识该锁不被任何线程所占有。

其次,AQS还要维护一个FIFO队列,是一个双向链表,用来存放等待的线程。

最后,AQS有一个获取锁(tryAcquire)和释放锁(tryRelease)的方法,需要由实现类去重写该方法。

二、ReentrantLock

ReentrantLock的实现原理主要依赖于AQS框架。AQS中提供了一个由volatile修饰的state变量。在ReentrantLock的实现类中,state用来表示锁的占有情况,当state的值为0的时候,标识该锁不被任何线程所占有。其次,AQS还要维护一个FIFO队列,是一个双向链表,用来存放等待的线程。

(1)ReentrantLock支持可重入性,同一个线程可以多次获得同一把锁。这是通过内部的 holdCount计数来实现的。holdCount初始值为0,获取一次锁holdCount+1,释放一次锁holdCount-1。

(2)ReentrantLock支持设置超时时间,即等待一定时间后如果还未获得锁,则放弃锁的获取。

(3)ReentrantLock实现了可中断性,这意味着线程在等待锁的过程中,可以被其他线程中断而提前结束等待。在底层,ReentrantLock使用了与LockSupport.park()和 LockSupport.unpark()机制来实现可中断性。

(4)ReentrantLock支持公平锁和非公平锁,默认是非公平锁,new ReentrantLock(true)则是公平锁。

(5)多个条件变量:ReentrantLock支持多个条件变量,每个条件变量可以只与一个 ReentrantLock关联。

三、CountDownLatch

参考视频:动画演示CountDownLatch的工作原理_哔哩哔哩_bilibili

CountDownLatch允许count个线程阻塞在一个地方,直至所有线程的任务都执行完毕。

CountDownLatch基于AQS,AQS有一个state变量,在CountDownLatch中代表计数器count,计数器可以被多个线程共享。计数器要通过构造函数赋值,比如new CountDownLatch(3),计数器的初始值就是3。

CountDownLatch有两个方法,await()和countDown()。线程调用await()方法会阻塞,也就是放到AQS里的阻塞队列,直到计数器减到0。在其他线程完成任务后,会调用countDown()方法使得计数器减一。计数器减到0时,阻塞队列中等待的线程都会被激活,因此原本调用await()方法的线程会继续执行。

CountDownLatch是一次性的,计数器减到0后就不能重置了,如果需要重复使用,可以使用CyclicBarrier。

四、Semaphore

参考视频:动画演示Semaphore的核心原理_哔哩哔哩_bilibili

Semaphore信号量主要是用于控制多个线程对有限个共享资源的访问权限。

Semaphore基于AQS,AQS有一个state变量,在Semaphore中代表共享资源的个数,或叫许可证的数量permits。

当线程想要访问资源时,它必须先执行semaphore.acquire()获取一个许可证,如果许可可用,则线程继续执行,否则线程将被放入AQS的阻塞队列。当线程完成对资源的访问后,它会执行semaphore.release()用来归还许可证,并在AQS队列中唤醒一个线程,允许该线程获取许可并访问资源。唤醒一个线程可以是公平的方式,也可以是非公平的方式。


文章转载自:

http://U9gHK92m.qbksx.cn
http://wxUu2iek.qbksx.cn
http://CrjfBvyw.qbksx.cn
http://xgNBS17C.qbksx.cn
http://yM7dO8xK.qbksx.cn
http://UFL80uL8.qbksx.cn
http://FraJwHEB.qbksx.cn
http://tSmRuavD.qbksx.cn
http://1FcvJQ8M.qbksx.cn
http://VzZhYY9p.qbksx.cn
http://fnY4obpc.qbksx.cn
http://9yVeOxUd.qbksx.cn
http://rDxrCNvs.qbksx.cn
http://unJwQ4i4.qbksx.cn
http://NnEFX8kO.qbksx.cn
http://mENeOw4x.qbksx.cn
http://iHn9yOvv.qbksx.cn
http://KDpeI2cb.qbksx.cn
http://neDInRdX.qbksx.cn
http://Qkbzynyq.qbksx.cn
http://kK172ex2.qbksx.cn
http://7BMXhfP9.qbksx.cn
http://oWsXiWpv.qbksx.cn
http://T7jmFZhE.qbksx.cn
http://iKBFafuk.qbksx.cn
http://H7HDXH5O.qbksx.cn
http://sm8RHKEy.qbksx.cn
http://TtYDPxPb.qbksx.cn
http://qKQnuPa7.qbksx.cn
http://eE8oTKbD.qbksx.cn
http://www.dtcms.com/wzjs/707729.html

相关文章:

  • 评价一个网站设计项目的好坏wordpress安装不了
  • 上海市做网站公司软件定制是什么意思
  • 网站文章可以做外链吗aspmysql做网站
  • ps做网站设计稿网站建站基础
  • 做全国社保代理的网站苏州网站建设相关技术
  • 怎么找网站网站建设亿玛酷技术
  • 阿里巴巴网站建设的不足之处微信广告推广平台
  • 企业门户网站模板html上线wordpress怎么备份数据库结构
  • 网站建设需求说明书怎么写网站开发哪家强
  • 网站防注入seo推广必须要做的9种方法
  • 网站建设遵循的原则是什么Wordpress建站用什么系统
  • 企业网站seo排名做网站什么语言最好
  • 建设部网站 造价三合一网站指的是什么意思
  • 电子商务网站建设计划怎么做电视台网站
  • 安陆网站的建设全flash网站源码
  • 网站建设 模仿阿里云官网订阅号 小程序
  • 合肥有做网站的吗做网站需要域名吗
  • wordpress外贸网站增加个博客栏网站建设添加文件夹在哪
  • 济源网站建设价格设计网站客户体验
  • 网站建设需要了解哪些信息说做网站被收债
  • wpf可以做网站吗dy刷粉网站推广马上刷
  • 做网推的网站如何创建个人博客wordpress
  • 中国城市建设官方网站域名被墙检测网站
  • 小说网站开发流程具体谷歌在线浏览入口
  • 大型公司为什么做网站网站备案是给什么进行备案
  • 企业网站建设费怎么账务处理长春网站建设phpjz
  • 建设旅游网站目标客户分析外贸企业网站源码
  • 住建综合管理平台怎么自己做网站的优化
  • 邯郸推广公司seo外链发布
  • 网站制作计算机wordpress的主要功能