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

做网站公司(深圳信科)网络营销最主要的工具是

做网站公司(深圳信科),网络营销最主要的工具是,免费申请网站首选百度,重庆模板网站建设目录 一、是什么?二、简单使用三、semaphore应用四、Semaphore原理 一、是什么? Semaphore:信号量,用来限制能同时访问共享资源的线程上限 二、简单使用 public class TestSemaphore {public static void main(String[] args) …

目录

      • 一、是什么?
      • 二、简单使用
      • 三、semaphore应用
      • 四、Semaphore原理

一、是什么?

Semaphore:信号量,用来限制能同时访问共享资源的线程上限

二、简单使用

public class TestSemaphore {public static void main(String[] args) {// 1. 创建 semaphore 对象Semaphore semaphore = new Semaphore(3);// 2. 10个线程同时运行for (int i = 0; i < 10; i++) {new Thread(() -> {try {semaphore.acquire();} catch (InterruptedException e) {e.printStackTrace();}try {log.debug("running...");sleep(1);log.debug("end...");} finally {semaphore.release();}}).start();}}
}

结果:始终只有三个线程处于正在运行的状态
在这里插入图片描述


三、semaphore应用

  • 使用semaphore限流,在访问高峰期时,让请求线程阻塞。当然它只适合限制单机线程数量,并且是仅限制线程数,而不是限制资源数(例如连接数)
  • 使用Semaphore实现简单连接池,对比享元模式下的实现(用wait和notify),性能和可读性要更好
class Pool {// 1. 连接池大小private final int poolSize;// 2. 连接对象数组private Connection[] connections;// 3. 连接状态数组 0 表示空闲, 1 表示繁忙private AtomicIntegerArray states;private Semaphore semaphore;// 4. 构造方法初始化public Pool(int poolSize) {this.poolSize = poolSize;// 让许可数与资源数一致this.semaphore = new Semaphore(poolSize);this.connections = new Connection[poolSize];this.states = new AtomicIntegerArray(new int[poolSize]);for (int i = 0; i < poolSize; i++) {connections[i] = new MockConnection("连接" + (i+1));}}// 5. 借连接public Connection borrow() {// t1, t2, t3// 获取许可try {semaphore.acquire(); // 没有许可的线程,在此等待} catch (InterruptedException e) {e.printStackTrace();}for (int i = 0; i < poolSize; i++) {// 获取空闲连接if(states.get(i) == 0) {if (states.compareAndSet(i, 0, 1)) {log.debug("borrow {}", connections[i]);return connections[i];}}}// 不会执行到这里return null;}// 6. 归还连接public void free(Connection conn) {for (int i = 0; i < poolSize; i++) {if (connections[i] == conn) {states.set(i, 0);log.debug("free {}", conn);semaphore.release();break;}}}
}

四、Semaphore原理

在这里插入图片描述
在这里插入图片描述

http://www.hengruixuexiao.com/news/15795.html

相关文章:

  • 有没有专门做牛仔的网站seo赚钱方式
  • 网站里的网页是一个一个做的么网站优化排名易下拉霸屏
  • 怎么修改别人做的网站山东今日热搜
  • 微芒科技网站建设top东莞网站制作公司
  • 统计局网站群建设方案广州网络推广服务商
  • 网站内容分享整合营销传播方案案例
  • 福建咨询网站建设商家广东做seo的公司
  • wordpress 说说功能长春百度seo排名
  • 建设银行信用卡网站登录怎么建网页
  • 企业b2c网站建设电商营销策略
  • 武汉网站建设怎么样网店培训
  • 坑梓做网站高端网站建设公司排名
  • 网站怎么换空间商郑州seo优化培训
  • 做网站 能挣钱吗微信小程序开发工具
  • 网站地图做关键词排名谷歌google官网下载
  • 网站设计 日语站长工具箱
  • 做网站兼容性怎么设置重庆seo网站收录优化
  • 网站后台数据库备份怎么做网站推广软件免费观看
  • wordpress官方主题下载洛阳seo网站
  • 小游戏网站开发需要什么技术成都网络营销公司哪家好
  • 织梦怎么制作手机网站源码百度推广怎么开户
  • 杭州网站建设索q.479185700营销策划方案
  • 在线网页制作源码优化修复石家庄百度快照优化
  • 外贸网站建设 杭州广东seo推广贵不贵
  • 医院网站建设政策seo优化的主要任务包括
  • 做移动网站快速排名软件东莞网站建设推广公司
  • 网站建设吧google app下载
  • 网站html地图怎么做广东seo网络培训
  • 银锭网那个网站做的 好网站seo优化服务
  • 宁波网站制作定制软文公司代写