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

网站策划书优势怎么分析广州11个区排名

网站策划书优势怎么分析,广州11个区排名,比较出名的wordpress网站,建设银行官方网站网址关于作者: CSDN内容合伙人、技术专家, 从零开始做日活千万级APP,带领团队单日营收超千万。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览…

关于作者: CSDN内容合伙人、技术专家, 从零开始做日活千万级APP,带领团队单日营收超千万。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
  • 三、使用
  • 四、原理
  • 五、 推荐阅读

ddd

一、导读

我们继续总结学习Java基础知识,温故知新。
本文涉及知识点:
AQS - AbstractQueuedSynchronizer
CAS(Compare And Swap)
锁概念 volatile

二、概览

ˈseməfɔː®

Semaphore 是信号量的意思,作用是控制访问特定资源的线程数量。
在多线程环境下用于协调各个线程, 以保证它们能够正确、合理的使用公共资源
Semaphore叫做信号量,和 CountDownLatch CyclicBarrier 两个不同的是,他的计数器是递增的。

三、使用

控制访问特定资源的线程数量,通常用于那些资源有明确访问数量限制的场景,常用于限流
如:买火车票,游乐场设施。

Semaphore在构造的时候, 可以传入一个int. 表示有多少许可(permit). 线程获取锁的时候, 要告诉信号量使用多少许可, 当线程要使用的许可不足时, 则调用的线程则会被阻塞.

游乐园中的某个游乐设施的管理员,用来控制同时玩这个游乐设施的人数。比如跳楼机只能坐十个人,就设置 Semaphore 的 permits 等于 10

public class SemaphoreTest {public static void main(String[] args) {//创建permits等于2Semaphore semaphore=new Semaphore(2);//开五个线程去执行PlayGamefor (int i = 0; i < 5; i++) {new Thread(new PlayGame(semaphore)).start();}}static class PlayGame extends Thread{Semaphore semaphore;public PlayGame(Semaphore semaphore){this.semaphore=semaphore;}@Overridepublic void run() {try {semaphore.acquire();System.out.println(Thread.currentThread().getName()+"获得一个许可证");Thread.sleep(1000);System.out.println(Thread.currentThread().getName()+"释放一个许可证");semaphore.release();} catch (InterruptedException e) {e.printStackTrace();}}}
}

四、原理

利用了 AQS - AbstractQueuedSynchronizer 的共享锁来实现,同时获取信号量有公平和非公平两种策略。

我们来看下源码

// 1、初始化,传人最大资源数
public Semaphore(int permits)acquire()  
获取一个令牌,在获取到令牌、或者被其他线程调用中断之前线程一直处于阻塞状态。
调用Semaphore#acquire() 方法, 它本质上是调用的AQS#acquireSharedInterruptibly(int), 参数为1
// 调用 AQS#doAcquireSharedInterruptibly(1) 方法acquire(int permits)  
获取一个令牌,在获取到令牌、或者被其他线程调用中断、或超时之前线程一直处于阻塞状态。acquireUninterruptibly() 
获取一个令牌,在获取到令牌之前线程一直处于阻塞状态(忽略中断)。tryAcquire()
尝试获得令牌,返回获取令牌成功或失败,不阻塞线程。
​
tryAcquire(long timeout, TimeUnit unit)
尝试获得令牌,在超时时间内循环尝试获取,直到尝试获取成功或超时返回,不阻塞线程。
​
release()
释放一个令牌,唤醒一个获取令牌不成功的阻塞线程。drainPermits()
清空令牌把可用令牌数置为0,返回清空令牌的数量。
​
availablePermits()
返回可用的令牌数量。

Semaphore的内部类公平锁(FairSync)和非公平锁(NoFairSync)各自实现不同的获取锁方法,默认公平锁。

在这里插入图片描述

子类的任务有:
1.通过CAS操作维护共享变量state。
2.重写资源的获取方式。
3.重写资源释放的方式。

1.主线程调用acquire()方法时,用当前信号量值-需要获取的值,如果小于0,则进入同步阻塞队列,大于0则通过CAS设置当前信号量为剩余值,同时返回剩余值
2.子线程调用release()给当前信号量值计数器+1(增加的值数量由传参决定),同时不停的尝试因为调用acquire()进入阻塞的线程

/***  获取1个令牌*/public void acquire() throws InterruptedException {sync.acquireSharedInterruptibly(1);}

五、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

在这里插入图片描述


文章转载自:

http://LSLIf9ad.zbkdm.cn
http://C4CSJSdO.zbkdm.cn
http://SYKMyx9t.zbkdm.cn
http://trYLESE2.zbkdm.cn
http://DJkeIYVP.zbkdm.cn
http://cwBwj5yA.zbkdm.cn
http://LnUvVVVU.zbkdm.cn
http://o0u5nObI.zbkdm.cn
http://R3xBthVG.zbkdm.cn
http://DlNaCFs6.zbkdm.cn
http://LGdITNBH.zbkdm.cn
http://l7waQhGM.zbkdm.cn
http://ahOjky30.zbkdm.cn
http://uJJMs1ln.zbkdm.cn
http://rifQw3qx.zbkdm.cn
http://row6ZtNj.zbkdm.cn
http://EAsDQ2X0.zbkdm.cn
http://qkvtrEf7.zbkdm.cn
http://euFl9gHy.zbkdm.cn
http://iQnQpsXA.zbkdm.cn
http://aeRPVbTJ.zbkdm.cn
http://YznEtq8w.zbkdm.cn
http://ZWnGKSJH.zbkdm.cn
http://Z15shcXt.zbkdm.cn
http://qZWPzPrF.zbkdm.cn
http://rDz62hg7.zbkdm.cn
http://GIBzPINK.zbkdm.cn
http://7IiRPawJ.zbkdm.cn
http://tPJuOsfi.zbkdm.cn
http://CTrRUfnq.zbkdm.cn
http://www.dtcms.com/wzjs/698518.html

相关文章:

  • asp.net网站开发模板做网站建设的电话销售
  • 客户为什么需要建站服务做怎样的网站能赚钱
  • 佛山网站优化效果代理网址域名
  • 中卫市网站开发制作公司名称注册规定
  • 中国建设监理协会网站继续教育系统情感营销的十大案例
  • 网站开发与设计的总体思想高端网站建设大概多少费用
  • 单位网站建设必要性填手机号的广告
  • 柳市做网站建设苏州微网站开发
  • 怎么给自己制作一个网站网站开发服务 退款
  • 山东网站建设网河南省汝州文明建设门户网站
  • 怎么做自己的门户网站知名设计品牌有哪些
  • 基于php网站开发设计Wordpress菜单的页面不显示
  • 上海网站建设外包公司名注册查询网站
  • 网站建设的科目女生学计算机难吗
  • 绍兴做网站服务电子商务网站成本
  • 合肥住房城乡建设部的网站网站备案注册
  • 合肥网站建设与设计win10怎么做网站
  • 如何提高网站开发效率长沙网站关键词优化
  • 品牌网站建设可信大蝌蚪php大型网站开发书籍
  • 大型网站开发流程和步骤怎么做弹幕视频网站
  • php网站后台验证码不显示网站建设类公
  • 单页面推广网站模版做电商需要知道的几个网站吗
  • 长春做网站哪家好wordpress快讯插件
  • 湛江网站建设制作价格做网站用的字体
  • 不同的网站 做301windows搭建网站开发
  • 中山网站建设如何青浦区网站建设
  • 做美食下载什么网站新浪sae搭建wordpress
  • 家居网站 模板中国十大门窗品牌
  • 郴州建设工程建设信息网站公司网络营销外包
  • 唯品会网站建设特色做网页的心得体会