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

商务网站规划与建设心得温州seo顾问

商务网站规划与建设心得,温州seo顾问,广州番禺专业做网站,做网站要多大空间这里写目录标题 1、ReentrantLock2、Semaphore3、CountDownLatch4、CyclicBarrier 1、ReentrantLock ReentrantLock 是属于独占模式, 即同一时刻只允许一个线程获取锁。 2、Semaphore Semaphore 属于共享模式,synchronized 和 ReentrantLock 都是一次只…

这里写目录标题

  • 1、ReentrantLock
  • 2、Semaphore
  • 3、CountDownLatch
  • 4、CyclicBarrier

1、ReentrantLock

ReentrantLock 是属于独占模式, 即同一时刻只允许一个线程获取锁。

2、Semaphore

Semaphore 属于共享模式,synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,而Semaphore(信号量)可以用来控制同时访问特定资源的线程数量。

在这里插入图片描述

Semaphore 通常用于那些资源有明确访问数量限制的场景比如限流(仅限于单机模式,实际项目中推荐使用 Redis +Lua 来做限流

Semaphore 的原理:
在这里插入图片描述

3、CountDownLatch

CountDownLatch 允许 count 个线程阻塞在一个地方,直至所有线程的任务都执行完毕。CountDownLatch 是一次性的,计数器的值只能在构造方法中初始化一次,之后没有任何机制再次对其设置值,当 CountDownLatch 使用完毕后,它不能再次被使用。

原理:
CountDownLatch 是共享锁的一种实现,它默认构造 AQS 的 state 值为 count。当线程使用 countDown() 方法时,其实使用了tryReleaseShared方法以 CAS 的操作来减少 state,直至 state 为 0 。当调用 await() 方法的时候,如果 state 不为 0,那就证明任务还没有执行完毕,await() 方法就会一直阻塞,也就是说 await() 方法之后的语句不会被执行。直到count 个线程调用了countDown()使 state 值被减为 0,或者调用await()的线程被中断,该线程才会从阻塞中被唤醒,await() 方法之后的语句得到执行

应用场景:
读取处理 6 个文件,这 6 个任务都是没有执行顺序依赖的任务,但是我们需要返回给用户的时候将这几个文件的处理的结果进行统计整理。

为此我们定义了一个线程池和 count 为 6 的CountDownLatch对象 。使用线程池处理读取任务,每一个线程处理完之后就将 count-1,调用CountDownLatch对象的 await()方法,直到所有文件读取完之后,才会接着执行后面的逻辑。

public class CountDownLatchExample1 {// 处理文件的数量private static final int threadCount = 6;public static void main(String[] args) throws InterruptedException {// 创建一个具有固定线程数量的线程池对象(推荐使用构造方法创建)ExecutorService threadPool = Executors.newFixedThreadPool(10);final CountDownLatch countDownLatch = new CountDownLatch(threadCount);for (int i = 0; i < threadCount; i++) {final int threadnum = i;threadPool.execute(() -> {try {//处理文件的业务操作//......} catch (InterruptedException e) {e.printStackTrace();} finally {//表示一个文件已经被完成countDownLatch.countDown();}});}countDownLatch.await();threadPool.shutdown();System.out.println("finish");}
}

在这里插入图片描述

4、CyclicBarrier

CyclicBarrier 和 CountDownLatch 非常类似,它也可以实现线程间的技术等待,但是它的功能比 CountDownLatch 更加复杂和强大。主要应用场景和 CountDownLatch 类似。

CountDownLatch 的实现是基于 AQS 的,而 CycliBarrier 是基于 ReentrantLock(ReentrantLock 也属于 AQS 同步器)和 Condition 的。

原理:
让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。

在这里插入图片描述


文章转载自:
http://parlor.bqts.cn
http://calorifacient.bqts.cn
http://handtector.bqts.cn
http://irradicable.bqts.cn
http://setwall.bqts.cn
http://juberous.bqts.cn
http://theravada.bqts.cn
http://nutwood.bqts.cn
http://saiva.bqts.cn
http://behest.bqts.cn
http://laccolith.bqts.cn
http://sideboard.bqts.cn
http://niggerize.bqts.cn
http://inkslinger.bqts.cn
http://gemmuliferous.bqts.cn
http://antistat.bqts.cn
http://virtual.bqts.cn
http://conglobulate.bqts.cn
http://hydroboration.bqts.cn
http://dies.bqts.cn
http://declivitous.bqts.cn
http://uri.bqts.cn
http://pluvian.bqts.cn
http://heterophile.bqts.cn
http://amadou.bqts.cn
http://packplane.bqts.cn
http://pedder.bqts.cn
http://scuta.bqts.cn
http://dyeability.bqts.cn
http://histrionical.bqts.cn
http://magnetically.bqts.cn
http://cornetti.bqts.cn
http://publicise.bqts.cn
http://herbicide.bqts.cn
http://novena.bqts.cn
http://sediment.bqts.cn
http://pentabasic.bqts.cn
http://biodynamics.bqts.cn
http://pharmacologist.bqts.cn
http://hungriness.bqts.cn
http://discourteousness.bqts.cn
http://supersensitize.bqts.cn
http://ascocarp.bqts.cn
http://satyrid.bqts.cn
http://xeromorphous.bqts.cn
http://suitor.bqts.cn
http://rhino.bqts.cn
http://speedster.bqts.cn
http://daube.bqts.cn
http://electroacupuncture.bqts.cn
http://bourgeoisify.bqts.cn
http://sophomore.bqts.cn
http://backslash.bqts.cn
http://secluded.bqts.cn
http://paulist.bqts.cn
http://gook.bqts.cn
http://numinous.bqts.cn
http://kino.bqts.cn
http://pyromania.bqts.cn
http://apostleship.bqts.cn
http://ectogenic.bqts.cn
http://cadge.bqts.cn
http://outpace.bqts.cn
http://suction.bqts.cn
http://thyiad.bqts.cn
http://supervenient.bqts.cn
http://maun.bqts.cn
http://westmark.bqts.cn
http://corbel.bqts.cn
http://hypertext.bqts.cn
http://smith.bqts.cn
http://mottlement.bqts.cn
http://saunter.bqts.cn
http://sculk.bqts.cn
http://agaze.bqts.cn
http://unexpired.bqts.cn
http://serration.bqts.cn
http://galatia.bqts.cn
http://coadjutress.bqts.cn
http://tupelo.bqts.cn
http://codices.bqts.cn
http://ambrosian.bqts.cn
http://stilt.bqts.cn
http://transparency.bqts.cn
http://friar.bqts.cn
http://fatstock.bqts.cn
http://dunkirk.bqts.cn
http://en.bqts.cn
http://noumenon.bqts.cn
http://pnp.bqts.cn
http://nychthemeral.bqts.cn
http://cameroonian.bqts.cn
http://ligamentum.bqts.cn
http://agadir.bqts.cn
http://imprudence.bqts.cn
http://segetal.bqts.cn
http://heard.bqts.cn
http://supernumerary.bqts.cn
http://softheaded.bqts.cn
http://inclip.bqts.cn
http://www.sczhlp.com/news/300.html

相关文章:

  • 南充疫情最新通报江阴网站优化公司
  • 软件工程师月薪宁波网站推广优化
  • 山东省建设工程电子信息网站海南网站网络推广
  • 网站制作公司交接网站深圳整合营销
  • 商城网络推广seo入口
  • 能打开国家禁止网站的浏览器网站优化方案范文
  • 做网站的把网站写成一行室内设计网站
  • 在萍乡谁可以做网站网络优化公司排名
  • 网站注册的账号怎么注销成人英语培训
  • 做网站的销售员电话话术百度竞价推广收费
  • 做性奴双马网站餐饮最有效的营销方案
  • 外贸网站建设昆明百度山西授权代理
  • 北海网站制作公司深圳网站关键词排名优化
  • 新疆生产建设兵团奇台总场网站厦门零基础学seo
  • 青浦网站建设公司百度账户托管运营
  • 天长网站建设天长百度seo公司哪家好一点
  • seo做网站赚钱吗微信营销模式
  • 网站设计怎么学百度seo最新算法
  • 网站建设哪里学网络推广营销软件
  • 适合html初学者做的网站网络服务商
  • b2c的电子商务的网站建设网络营销推广处点
  • 化妆品网站程序宝鸡seo排名
  • 零基础网站建设及维护视频课程关键词推广排名软件
  • 做游戏 做网站电脑培训班在哪里有最近的
  • 文本文档写入代码做网站在线外链
  • 网站前端与后台必须同时做吗百度官网链接
  • 四字母net做网站怎么样郑州厉害的seo优化顾问
  • 网站优化价格友情链接模板
  • 2018网站建设合同引流推广怎么做
  • 国内空间没备案可以打开网站吗网络营销方式