响应式网站哪里做电商型网站设计企业

diannao/2026/1/16 11:14:56/文章来源:
响应式网站哪里做,电商型网站设计企业,和田知名网站建设企业,做影视网站风险大这是我们将要进行的Java并发系列的第一部分。 具体来说#xff0c;我们将深入探讨Java 1.5及更高版本中内置的并发工具。 我们假设您对同步和易失性关键字有基本的了解。 第一篇文章将介绍信号量-特别是对信号量进行计数 。 信号量是用于限制对资源访问的经常被误解和使用不足… 这是我们将要进行的Java并发系列的第一部分。 具体来说我们将深入探讨Java 1.5及更高版本中内置的并发工具。 我们假设您对同步和易失性关键字有基本的了解。 第一篇文章将介绍信号量-特别是对信号量进行计数 。 信号量是用于限制对资源访问的经常被误解和使用不足的工具。 对于其他控制对资源的访问的方式它们将被忽略。 但是信号量为我们提供了一个超越常规同步和其他工具所能提供的工具集的工具集。 那么什么是信号量 想到信号量的最简单方法是将其视为允许n个单位被获取并提供获取和释放机制的抽象。 它安全地允许我们确保在给定的时间只有n个进程可以访问特定资源 。 一切都很好但是这将达到什么目的呢 好吧这是一个示例将有助于解释其用法。 它使用位于1.5。中的java.util.concurrent包中精心设计的Semaphore类。 限制连接 也许我们有一个过程可以通过HTTP定期为我们下载资源。 我们不想向任何主机发送垃圾邮件同时我们想限制正在建立的连接数因此我们不会耗尽允许的有限文件句柄或出站连接。 一种简单的方法是使用信号量 public class ConnectionLimiter {private final Semaphore semaphore;private ConnectionLimiter(int maxConcurrentRequests) {semaphore new Semaphore(maxConcurrentRequests);}public URLConnection acquire(URL url) throws InterruptedException,IOException {semaphore.acquire();return url.openConnection();}public void release(URLConnection conn) {try {/** ... clean up here*/} finally {semaphore.release();}} } 对于资源有限的问题这是一个很好的解决方案。 对acquire的调用将阻塞直到获得许可为止。 信号灯的优点在于它隐藏了管理访问控制计算许可数以及确保正确的线程安全性的所有复杂性。 危险性 与大多数锁定或同步方法一样存在一些潜在问题。 要记住的第一件事是 始终释放您获得的东西 。 这是通过使用try..finally构造完成的。 使用信号量时还有其他不太明显的问题可能会降临您。 以下课程显示了死锁只有您中最幸运的人才能避免。 您会注意到获得两个信号量许可的两个线程的执行顺序相反。 为简洁起见try..finally最终被省去了。 public static void main(String[] args) throws Exception {Semaphore s1 new Semaphore(1);Semaphore s2 new Semaphore(1);Thread t new Thread(new DoubleResourceGrabber(s1, s2));// now reverse them ... here comes trouble!Thread t2 new Thread(new DoubleResourceGrabber(s2, s1));t.start();t2.start();t.join();t2.join();System.out.println(We got lucky!); }private static class DoubleResourceGrabber implements Runnable {private Semaphore first;private Semaphore second;public DoubleResourceGrabber(Semaphore s1, Semaphore s2) {first s1;second s2;}public void run() {try {Thread t Thread.currentThread();first.acquire();System.out.println(t acquired first);Thread.sleep(200); // demonstrate deadlocksecond.acquire();System.out.println(t acquired second);second.release();System.out.println(t released second);first.release();System.out.println(t released first);} catch (InterruptedException ex) {ex.printStackTrace();}} } 如果运行此程序则很有可能会挂起一个进程。 锁排序的问题与Java中的常规互斥锁或同步一样也适用于信号量。 在某些情况下超时请参阅本文后面的tryAcquire注释可用于防止死锁导致进程挂起但是死锁通常是可以避免的逻辑错误的征兆。 如果您不熟悉死锁建议您仔细阅读它们。 维基百科上有一篇关于死锁的文章该文章同样适用于所有语言。 使用信号量包括二进制信号量即互斥体时应注意的主要事项是 获取后不释放丢失的释放调用或引发异常并且没有finally块 长时间保持信号量导致线程饥饿 死锁如上所示 有用的信号灯技巧 Java中Semaphores的一个有趣的特性是 不必通过与Acquisition相同的线程来调用release 。 这意味着您可以具有一个线程限制器该线程限制器可以通过调用acquire来基于信号量池或创建线程。 然后正在运行的线程可以在完成时释放其自己的信号灯许可。 这是Java中普通互斥锁所没有的有用属性。 另一个技巧是在运行时增加许可数量 。 与您可能会猜到的相反信号量中的许可数量不是固定的并且即使未进行相应的acquire调用对release的调用也会始终增加许可的数量。 请注意如果在没有进行acquire的情况下错误地调用release 这也会导致错误。 最后在Java的Semaphore中有一些有用的方法要熟悉。 方法AcquireInterruptible将获取资源如果资源被中断则重新尝试。 这意味着没有对InterruptedException的外部处理。 tryAcquire方法允许我们限制等待许可的时间-我们可以在没有许可的情况下立即返回也可以等待指定的超时时间。 如果您以某种方式知道了无法轻松修复或跟踪的死锁则可以通过使用带有适当超时的tryAcquire来帮助防止锁定进程。 用途 计数信号量有哪些可能的用途 请注意以下几点 限制对磁盘的并发访问由于竞争磁盘搜寻这可能会降低性能 线程创建限制 JDBC连接池/限制 网络连接限制 限制CPU或内存密集型任务 当然信号量是访问控制和同步的一个很底层的构建块。 Java为我们提供了Java 1.5及更高版本中引入的大量并发机制和策略。 在接下来的文章中我们将介绍一些更抽象的并发管理方法包括执行器BlockingQueuesBarriersFuture以及一些新的并发Collection类。 您发现信号量有什么用途 通过发表评论让我们知道–我们喜欢语音软件。 参考 Java并发第1部分–来自我们的JCG合作伙伴的信号灯 在Carfey Software博客上 。 相关文章 Java并发教程–重入锁 Java并发教程–线程池 Java并发教程–可调用将来 Java并发教程–阻塞队列 Java并发教程– CountDownLatch Exchanger和无GC的Java Java Fork / Join进行并行编程 Java最佳实践–队列之战和链接的ConcurrentHashMap 如何在不到1ms的延迟内完成100K TPS 使用迭代器时如何避免ConcurrentModificationException 改善Java应用程序性能的快速技巧 相关片段 阻塞队列示例以执行命令 限制URL连接的信号量示例 执行命令的同步队列示例 更一般的等待/通知机制的CountDownLatch示例 翻译自: https://www.javacodegeeks.com/2011/09/java-concurrency-tutorial-semaphores.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站的企业是什么行业凡科代理登录

金航标电子位于广西柳州鹿寨县天线生产基地于大年正月初九开工了!!!金航标kinghelm(www.kinghelm.com.cn)总部位于中国深圳市,兼顾技术、成本、管理、效率和可持续发展。东莞塘厦实验室全电波暗室、网络分析…

优秀音乐网站设计欣赏免费的seo优化

目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击:二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …

如何利用站群做网站北京建设数字网站

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.报错: Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreEx…

全球最好的黄页网站大连网址

我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理,为以后面向抽象的编程打下坚实的基础。封装的概念还是很容易理解的。如果你会定义类,那么相信你对封装的概念已经完全掌握了。下面定义的几…

好的做问卷调查的网站好凡科登陆

近年来,冻干猫粮作为备受追捧的高品质猫粮,吸引了越来越多养猫人的关注。新手养猫就弄不明白了,什么是冻干猫粮呢?冻干猫粮可以作为日常主食一直喂吗? 像我这种养猫老司机早就开始了冻干喂养。我把我这些年总结的经验…

网站建设试题以及答案象山专业网站建设

今天为大家分享的是我们在日常测试工作中, 一定会接触并且目前在企业中是主要测试内容的 功能测试与接口测试 一.功能测试与接口测试的基本概念。 1.1 什么是功能测试呢? 功能测试: 是黑盒测试的一方面, 检查实际软件的功能是否符合用户的需求 功能测试测试的内容包括以下…

公司网站设计哪家好wordpress的category

(1) Prefork MPM (优点) :使用多个子进程,每个子进程只有一个线程来处理一个 http 连接,不用担心线程安全问题缺点:内存消耗大,不擅长处理高并发环境,使用keep-alive长连接时要等到超…

百度网站怎样做分销是怎么做的

前言 这个主要是一个对象转换json处理的工具包, 依赖于HXCommon 里面主要包含了一些 字符串互转json, 对象互转json 的处理 相关使用 api 参照的是 net.sf.json 提供了相关的 get/opt/put/element 相关 api 适用于各种情况 具体的实现 这里不多做赘述 GitHub - 97065514…

ps免费模板网站开发手机网站用什么语言

Swashbuckle.AspNetCore3.0 介绍一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探索和测试操作的 UI。项目主页:https://github.com/domaindrivendev/Swashbuckle.AspNetCore划…

瑞昌建站公司最火的网络推广平台

1、命名空间(namespace使用总结) C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字,…

黑龙江网站开发ui中国网站

成员变量默认修饰符是public static final的原因是: Java中接口中成员变量默认修饰符是public static final的原因是为了确保接口的成员变量都是公共的、静态的和不可修改的。 - public修饰符确保了接口的成员变量可以在任何地方被访问到。 - static修饰符使得接口…

化工网站模板免费下载网站建设选哪家

node安装以及node的包管理工具 node安装nvm管理工具 node安装 1、下载node链接: 点击这里 2、选择需要下载的版本以及对应的系统版本 nvm管理工具 1、下载nvm链接: 点击这里 2、双击运行.exe文件 全部默认安装即可 3、nvm常用命令 nvm list avaliable 显示所有可以下载的n…

做企业网站的广告词竹子建站公司

实现重写 实现派生类中基类的成员称为重写。在C#中,可以重写方法、属性和索引器。 重写是多态性的一种形式,因为它使您能够创建具有相同名称和不同功能的不同代码块。 重写函数 在面向对象编程中,子类可以提供超类中已定义的专门版本的函数。这称为函数重写。 函数重写是…

手机在线销售网站 - 百度建筑公司简介范文大全

Linux系统及操作 (09) [ ping ] [ ping -c ]指定数量 [ ping -c5 192.168.88.2 ] 指定五次交互 DNS服务器 Domain Name System 域名系统 用于实现域名和IP地址相互映射的一个分布式数据库 将域名翻译成可由计算机识别的IP地址,方便用户间的互相访问 计算机无法直接识别**[…

做网站电话销售说辞wordpress 站长统计

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

网站模板哪个好建设厅是什么单位

前段时间想自己部署一个ChatGLM来训练相关的物料当做chatgpt使用&#xff0c;但是奈何没有gpu机器&#xff0c;只能使用cpu服务器尝试使用看看效果 我部署的 Chinese-LangChain 这个项目&#xff0c;使用的是LLM&#xff08;ChatGLM&#xff09;embedding(GanymedeNil/text2vec…

网站首页详细设计东莞网站建设网站建立

现在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是Web.xml的替代&#xff0c;它是一个接口。通过实现WebApplicationInitializer&#xff0c;在其中可以添加servlet&#xff0c;listener等&#xff0c;在加载Web项目的时候会加载这个接口实…

网站开发整体流程网站做调查问卷给钱的兼职

最具人气大学排行榜7月榜单发布 清华大学排第一JPG&#xff0c;395x289&#xff0c;231KB&#xff0c;342_249大学人气排行榜 你的大学上榜了吗JPG&#xff0c;392x290&#xff0c;231KB&#xff0c;337_250大学人气排行榜 你的大学上榜了吗JPG&#xff0c;596x447&#xff0c;…

设计网站案例做网站必须要有的素材

前言 今天继续来学new和delete operator new 与operator delete函数 new和delete是用户进行动态内存申请和释放的操作符&#xff0c;operator new 和operator delete是系统提供的全局函数&#xff0c;new在底层调用operator new全局函数来申请空间&#xff0c;delete在底层通…