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

57.Semaphore信号量

用来限制能同时访问共享资源的线程上限。只是适合限制单机线程数量。

@Slf4j
public class SemaphoreDemo {public static void main(String[] args) {Semaphore semaphore = new Semaphore(3);for (int i = 0; i < 10; i++) {new Thread(() -> {try {semaphore.acquire();//获得此信号量log.debug("我是线程"+Thread.currentThread().getName());Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}finally {semaphore.release();//释放信号量}}).start();}}
}

Semaphore实现简单连接池,对比享元模式下的实现用wait,notify。性能和可读性显然更好。

http://www.lryc.cn/news/367916.html

相关文章:

  • 生成式人工智能 - 文本反转(Textual Inversion):一种微调稳定扩散模型的方法
  • minio的一个基础使用案例:用户头像上传
  • Linux用户和用户组的管理
  • 项目-五子棋双人对战:游戏房间的管理(5)
  • LocalDate和Date有什么区别?两者如何转换?
  • 铝合金货物运输鉴定书办理 货物危险性鉴定
  • php操作数据库
  • python记录之集合
  • ResourceManager 的 rpc server 模型
  • Java面试八股之什么是自动装箱和自动拆箱
  • OrangePi AIpro小试牛刀-目标检测(YoloV5s)
  • QT案例 记录解决在管理员权限下QFrame控件获取拖拽到控件上的文件路径
  • [HNCTF 2022 WEEK4]flower plus
  • Mongo常用语法(java代码)
  • go语言后端开发学习(二)——基于七牛云实现的资源上传模块
  • 探索微软新VLM Phi-3 Vision模型:详细分析与代码示例
  • 如何使用GPT-4o函数调用构建一个实时应用程序?
  • [Vue-常见错误]浏览器显示Uncaught runtime errors
  • html常见的表单元素有哪些,html表单元素有哪些?
  • spring boot sso
  • Keras深度学习框架实战(5):KerasNLP使用GPT2进行文本生成
  • 速盾:网站重生之我开了高防cdn
  • 【spark】spark列转行操作(json格式)
  • 记录一次Linux启动kafka后并配置了本地服务连接远程kafka的地址后依旧连接localhost的问题
  • MacOS中Latex提示没有相关字体怎么办
  • 物资材料管理系统建设方案(Word)—实际项目方案
  • !力扣102. 二叉树的层序遍历
  • Vue3 + TS + Antd + Pinia 从零搭建后台系统(一) 脚手架搭建 + 入口配置
  • 中国同胞进来看看,很多外国人想通过CSDN坑咱们中国人
  • Web前端电话咨询:深度解析与实用指南