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

自建网站访问报错网站建设中怎么编辑图片

自建网站访问报错,网站建设中怎么编辑图片,网站维护是什么专业,网站建站方式有哪些文章目录 一、概述二、使用方法三、测试示例 一、概述 Semaphore#xff08;信号量#xff09;是一种并发控制机制#xff0c;用于控制对共享资源的访问。它维护了一个计数器#xff0c;可以限制同时访问某个资源的线程数量。常用于限制同时访问某个资源的线程数量#xf… 文章目录 一、概述二、使用方法三、测试示例 一、概述 Semaphore信号量是一种并发控制机制用于控制对共享资源的访问。它维护了一个计数器可以限制同时访问某个资源的线程数量。常用于限制同时访问某个资源的线程数量例如控制数据库连接池的并发访问、控制线程池的并发任务数、生产者-消费者问题、读者-写者问题等。 使用 Semaphore 就像银行取钱一样。假如银行有3个柜台那么同一时刻最多就只能有3个人取钱其他人需在等待区等待。当其中某个柜台的人走了以后等待区的人才能有一个人到柜台办理取钱业务。从而实现限流保证了柜台业务的正常运作否则都挤过去就乱了。 Semaphore 有两个主要操作acquire() 和 release()。 acquire(): 当一个线程需要访问共享资源时它可以调用 acquire() 方法。如果计数器大于0那么线程将获得访问权限并将计数器减1。如果计数器为0那么线程将被阻塞直到有其他线程释放资源并增加计数器。release(): 当一个线程完成对共享资源的访问时它应该调用 release() 方法来释放资源并增加计数器的值。这将允许其他线程获取访问权限。tryAcquire()尝试获取一个许可证如果获取成功返回 true否则返回 false不会阻塞线程。 注意Semaphore 通常用来限流即限制访问某个资源的线程数。而不是用于斥锁资源的访问如果要用于斥锁资源的问题则需把初始计数器设置为1。这时它变成了一个二元信号量通常被称为互斥锁。只允许一个线程同时访问共享资源。 二、使用方法 使用 Semaphore 的方法如下 声明一个 Semaphore 对象初始化时指定 同时访问资源 的线程个数。在业务开始部分使用 semaphore.acquire(); 领取许可证。完成业务后使用 semaphore.release(); 还回许可证。 public class SemaphoreExample {private Semaphore semaphore new Semaphore(5); // 允许同时访问资源的线程数量这里设置为5表示可以有5个线程同时访问public void accessResource() {try {semaphore.acquire(); // 获取许可证如果有许可证则计数器减1如果没有可用许可证则阻塞// 访问共享资源的代码} catch (InterruptedException e) {// 处理中断异常} finally {semaphore.release(); // 释放资源计数器加1}} }三、测试示例 在下面示例中创建了一个 BankSemaphoreExample 类模拟银行有5个柜台可以进行取钱业务。在主线程中创建100个线程模拟100个富豪然后一起去银行取钱。由于银行使用 Semaphore 限流同一时刻只能有5个人取钱其他人会排队等候。 package top.yiqifu.study.p004_thread;import java.util.ArrayList; import java.util.List; import java.util.concurrent.Semaphore;public class Test086_Semaphore {public static void main(String[] args) {BankSemaphoreExample bank new BankSemaphoreExample();ListThread threads new ArrayList();for(int i 1; i 100; i){Thread t new Thread(()-{try {bank.getMoney(Thread.currentThread().getName());Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}});t.setName(富豪i);threads.add(t);}for(Thread t : threads){t.start();}for(Thread t : threads){try {t.join();} catch (InterruptedException e) {e.printStackTrace();}}}public static class BankSemaphoreExample {private volatile float Money 1000 * 10000;private Semaphore semaphore new Semaphore(5); // 假高银行有5个柜台synchronized void get(float m) {this.Money - m;}public void getMoney(String people){try {semaphore.acquire();float m (float) Math.random()* 10000;this.get(m);System.out.println(people 取钱m元还有排队富豪semaphore.getQueueLength());Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();} finally {semaphore.release();}}} }
http://www.yutouwan.com/news/257186/

相关文章:

  • 万州区建设局官方网站上传的网站怎么打开
  • 徐州建设工程交易网站找人做建筑施工的网站
  • php网站开发实例教程案例建筑网站设计模版
  • 中文域名可以做网站吗wordpress 文本小工具栏
  • 贵州省网站建设网站ico图标放在哪里
  • 专门建立网站的公司吗做网站定制
  • 网站开发标书范本网站权重不稳定
  • 福建省建设质量安全协会网站厦门建设工程信息造价网站
  • 资深的教育行业网站开发抚州做网站的公司
  • 做一个电商网站要多少钱口碑好的武进网站建设
  • 大网站链接提取视频的网站
  • 建设部网站上查不到资质的企业wordpress 视频付费插件
  • 双体系建设网站用名字做头像是什么网站
  • 南京 微网站 建站深圳网站设计公司发展历程
  • 怎么做网站生意莆田联客易外贸网站建设推广
  • 企业手机网站建设市场互联网行业的发展趋势
  • 抄袭网站违法万网域名控制台
  • 深圳做微网站济阳建设局网站
  • 交友软件网站建设wordpress api文档下载
  • 做家居商城网站聊城定制网站建设公司
  • 基于.NET的电子商务网站开发百度信息流代理
  • python 做网站相关的库电子商务网店毕业设计
  • 云南建设工程网站花都有沒有网站建设的
  • 福州牛蛙 网站建设怎么推广自己的店铺
  • 外贸先做网站再开公司做微博推广的网站吗
  • 做百科的网站android移动应用开发
  • 西咸新区规划建设局网站成品门户网站源码免费
  • 中国旅游网站建设现状及发展趋势分析设计师资格证
  • 网站制作厂家做网页价格
  • 成立公司怎么做网站副食店年报在哪个网站做