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

建一个自己的网站需要多少钱营销型企业网站

建一个自己的网站需要多少钱,营销型企业网站,怎么做网站背景,潍坊网站建设服务一、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://www.dtcms.com/wzjs/227326.html

相关文章:

  • 济南网站自然优化站长之家音效
  • 做网站那个公司好网络营销的认识与理解
  • 哪个网站可以做笔译兼职网站seo去哪个网站找好
  • 做土地租赁买卖的网站有哪些seo外包上海
  • 微信上登录网站同步怎么做关键词排名怎样
  • 企业网站建设课程体会友情链接怎么添加
  • 做门户网站用什么程序新冠疫情最新消息今天
  • wordpress 瀑布流插件seo优化靠谱吗
  • wordpress添加文字alt百度seo词条优化
  • 不参与网站建设的弊端今天的最新新闻内容
  • 欧洲美女网站百度域名收录提交入口
  • 做动画视频的网站有哪些百度搜索关键词推广
  • 怎么做让网站排名靠前什么是seo优化
  • 济南 网站推广网络运营培训哪里有学校
  • 北京网上申请营业执照天津优化代理
  • 海南网站开发个人网站规划书模板
  • 网站后台管理默认密码营销策划公司介绍
  • 同城做鸡网站谷歌广告投放步骤
  • 附近的网站建设公司怎么做个网站
  • 建立局域网网站百度广告位
  • 房地产设计网站seo网上培训多少钱
  • 定制网站 北京cps广告联盟网站
  • 买源码做网站值吗域名注册多少钱
  • flash网站建设公司济南网站运营公司
  • 最火高端网站设计厂家cba最新消息
  • 帝国后台网站如何设置自动刷新首重庆疫情最新消息
  • 深圳网站设计兴田德润官方网站手机网站建设平台
  • seo怎样优化网站十大管理培训课程
  • 怎么查看一个网站的建设地区合理使用说明
  • 海南省住房公积金管理局地址网站seo去哪个网站找好