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

网站建设经费nba赛程排名

网站建设经费,nba赛程排名,贵阳网站设计与开发怎么做,html5网站开发视频1. Semaphore - 信号量 1.1. 信号量模型 信号量的定义: Semaphore(信号量):是并发编程中的一种线程同步工具,控制同时访问某资源的线程数量。 模型结构: 计数器(count)等待队列…

1. Semaphore - 信号量

1.1. 信号量模型

信号量的定义:

Semaphore(信号量):是并发编程中的一种线程同步工具,控制同时访问某资源的线程数量。

模型结构:

  1. 计数器(count)
  2. 等待队列(queue)
  3. 三个原子操作方法:
    • init(int c):初始化计数器值为 c
    • down()(Java 中为 acquire()):
      • count--,若结果 < 0,则阻塞线程,加入等待队列
    • up()(Java 中为 release()):
      • count++,若结果 ≤ 0,唤醒等待队列中的一个线程

特点:

  • 原子性由 Java 的 Semaphore 实现保证
  • down()/up() 也称为:P() / V(),或 semWait() / semSignal()

代码话信号量模型:

class Semaphore{// 计数器int count;// 等待队列Queue queue;// 初始化操作Semaphore(int c){this.count=c;}// void down(){this.count--;if(this.count<0){// 将当前线程插入等待队列// 阻塞当前线程}}void up(){this.count++;if(this.count<=0) {// 移除等待队列中的某个线程 T// 唤醒线程 T}}
}

示例:使用 Semaphore 实现互斥访问(类似锁)

static int value = 0;  
static final Semaphore s = new Semaphore(1); // 1 表示只能一个线程访问static void addOne() {s.acquire(); // 进入前尝试获取许可证try {value += 1;} finally {s.release(); // 离开后释放许可证}
}

执行逻辑分析:

  • 如果有两个线程同时 acquire()
    • 一个成功(count = 0),继续执行
    • 一个阻塞(count = -1)
  • 当执行完后 release(),阻塞的线程才被唤醒
  • 实现了互斥访问

1.2. 实现限流器

Semaphore 的优势 —— 可支持多个线程访问

  • Lock 只能实现一个线程进入临界区
  • Semaphore 可支持 多个线程同时访问资源

场景举例:对象池(或连接池)

class ObjPool<T, R> {final List<T> pool;final Semaphore sem;ObjPool(int size, T t) {pool = new Vector<>();for (int i = 0; i < size; i++) {pool.add(t);}sem = new Semaphore(size); // 控制最多 size 个线程访问}R exec(Function<T, R> func) {T t = null;sem.acquire(); // 尝试获取资源许可try {t = pool.remove(0); // 从池中取出对象return func.apply(t); // 执行业务逻辑} finally {pool.add(t); // 归还对象sem.release(); // 释放许可}}
}

核心逻辑:

  • 控制同时最多有 N 个线程访问资源
  • 获取资源 → 使用资源 → 归还资源
  • 限流 + 对象复用(高效)
http://www.dtcms.com/wzjs/212412.html

相关文章:

  • 工作是套模板做网站广告投放网
  • 汕头市疫情最新情况seo内容优化心得
  • 改进网站的建议北海百度seo
  • 烟台网站建设-中国互联抖音营销推广方案
  • 微店那样的网站怎么做seo兼职平台
  • 网站建设要多少钱seo系统培训班
  • 做网站零成本百度指数搜索
  • 做网站前的准备什么软件企业推广网站有哪些
  • 做移动网站设计seo网站优化方案书
  • 公司免费网站建设网站关键词排名查询工具
  • 东莞阳光网疫情最新消息网站页面关键词优化
  • 网站模板 安全吗百度推广课程
  • 装修公司需要多少钱北京网站优化效果
  • 织梦网站被做跳转域名访问网站怎么进入
  • 陕西住房与城乡建设厅网站淘宝摄影培训推荐
  • 淘宝店的网站建设分析一个域名大概能卖多少钱
  • 网站建设基本步骤如何分析百度指数
  • h5作品网站企业的互联网推广
  • 没有文章更新的网站怎么做优化北京seo优化服务
  • 上海建设银行网站静安支行万能导航网
  • 用php做动态网站搜索引擎营销的特点包括
  • 做众筹网站要什么资质郑州网站推广公司哪家好
  • 在对方网站做友情链接优化设计全部答案
  • 北京网站seo公司优化怎么做
  • 网站开发合作合同范本陕西seo
  • 网站建设的数据库设计图网络推广是干什么的
  • 网站建设全包靠谱公司免费奖励自己的网站
  • 聊城住房和城乡建设委员会官方网站免费有效的推广平台
  • 用电脑做网站手机百度
  • 苏州营销网站建设北京百度seo排名点击软件