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

商业网站建设案例课程 下载工信部企业网站认证

商业网站建设案例课程 下载,工信部企业网站认证,centos打开wordpress,dede企业网站如第3部分所述#xff0c;Java 1.5中引入的线程池提供了核心支持#xff0c;该支持很快成为许多Java开发人员的最爱。 在内部#xff0c;这些实现巧妙地利用了Java 1.5中引入的另一种并发功能-阻塞队列。 队列 首先#xff0c;简要回顾一下什么是标准队列。 在计算机科学… 如第3部分所述Java 1.5中引入的线程池提供了核心支持该支持很快成为许多Java开发人员的最爱。 在内部这些实现巧妙地利用了Java 1.5中引入的另一种并发功能-阻塞队列。 队列 首先简要回顾一下什么是标准队列。 在计算机科学中队列只是一个集合始终将元素添加到末尾并始终从头开始获取元素。 表达式先进先出FIFO通常用于描述标准队列。 在Java 1.6中引入的是Deque或双端队列该接口现在在LinkedList上实现。 Java中的某些队列允许其他排序例如使用Comparator甚至编写自己的排序实现。 虽然扩展功能很好但是我们今天关注的是BlockingQueues如何真正在并发开发中大放异彩。 阻塞队列 阻塞队列是一些队列它们还公开了在没有可用元素的情况下阻止检索元素的请求的功能该附加选项可以限制等待时间。 在受限制的大小队列上尝试添加时可以使用相同的阻止功能。 让我们深入探讨一下BlockingQueue用法的示例。 让我们假设一个简单的场景。 您有一个处理线程其功能只是执行命令。 import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue;private BlockingQueueCommand workQueue new LinkedBlockingQueueCommand();public void addCommand(Command command) {workQueue.offer(command); }public Object call() throws Exception {try {Command command workQueue.take();command.execute();} catch (InterruptedException e) {throw new WorkException(e);} } 当然这是一个非常简单的示例但它向您展示了对多个线程使用BlockingQueue的基本知识。 让我们尝试一些更多的事情。 在此示例中我们需要创建一个具有限制的连接池。 它仅应根据需要创建连接。 没有客户端将等待超过5秒的可用连接。 private BlockingQueueConnection pool new ArrayBlockingQueueConnection(10); private AtomicInteger connCount new AtomicInteger();public Connection getConnection() {Connection conn pool.poll(5, TimeUnit.SECONDS);if (conn null) {synchronized (connCount) {if (connCount.get() 10) {conn getNewConnection();pool.offer(conn);connCount.incrementAndGet();}}if (conn null) {throw new ConnUnavailException();} else {return conn;}} } 最后让我们考虑一个有趣的实现示例示例SynchronousQueue 。 在此示例中类似于我们的第一个示例我们想要执行一个Command但是需要知道它何时完成最多等待2分钟。 private BlockingQueue workQueue new LinkedBlockingQueue(); private Map commandQueueMap new ConcurrentHashMap(); public SynchronousQueue addCommand(Command command) {SynchronousQueue queue new SynchronousQueue();commandQueueMap.put(command, queue);workQueue.offer(command);return queue; }public Object call() throws Exception {try {Command command workQueue.take();Result result command.execute();SynchronousQueue queue commandQueueMap.get(command);queue.offer(result);return null;} catch (InterruptedException e) {throw new WorkException(e);} } 现在使用者可以安全地轮询其请求以执行其命令的超时。 Command command; SynchronousQueue queue commandRunner.addCommand(command); Result result queue.poll(2, TimeUnit.MINUTES); if (result null) {throw new CommandTooLongException(command); } else {return result; } 正如您开始看到的那样java中的BlockingQueues提供了很大的灵活性并为您提供了相对简单的结构来满足多线程应用程序中的许多如果不是全部需求。 我们甚至没有审查过一些非常整洁的BlockingQueues 例如PriorityBlockingQueue和DelayQueue 。 看看他们并取得联系。 我们喜欢与开发人员交谈。 参考 Carfey Software博客上的JCG合作伙伴的Java并发第5部分-阻塞队列 。 相关文章 Java并发教程–信号量 Java并发教程–重入锁 Java并发教程–线程池 Java并发教程–可调用将来 Java并发教程– CountDownLatch Exchanger和无GC的Java Java Fork / Join进行并行编程 使用迭代器时如何避免ConcurrentModificationException 改善Java应用程序性能的快速技巧 翻译自: https://www.javacodegeeks.com/2011/09/java-concurrency-tutorial-blocking.html
http://www.pierceye.com/news/912425/

相关文章:

  • 网站开发的前端技术有哪些软件制作是什么专业
  • 淘宝网站建设目标是什么意思厦门seo计费
  • 高端网站建设注意简述网络营销的基本方法
  • html5网站开发实例教程沈阳软件定制开发公司
  • 做透水砖的网站下载爱南宁乘车
  • 免费建设工程信息网站许昌市建设路小学网站
  • 网站建设公司华网天如何设置自己的网址
  • 株洲做网站那家好黑龙江网站设计
  • 培训视频网站百度权重划分等级
  • 重庆江北区网站建设怎么查询网站建设时间
  • 做网站一个月能挣多少怎么做营销推广
  • 网站做镜像检查漏洞网站建设需要哪些步骤
  • 广州手机建设网站wordpress 读者墙
  • 大桥石化集团网站谁做的wordpress建站吗
  • 手机行业网站做网站用什么环境
  • 百度做网站刷排名国外做图标网站
  • 常州好的网站设计公司企业策划方案怎么做
  • 厂房出租做推广什么网站好网站做自适应的好处
  • 网站木马文件删除青岛黄岛网站建设公司电话
  • 一个网站做网站地图的目的企业网站建设框架图
  • 网站建设 swot分析深圳市龙华区繁华吗
  • h5 小米网站模板直接通过ip访问网站
  • 公司建设个网站制作装饰公司网站
  • 高质量的网站内容建设做网站信科网站建设
  • 网站建设倒计时模板学校室内设计效果图
  • 海东营销网站建设公司东莞网络优化排名
  • 株洲网站建设服务建筑公司怎么注册
  • 心理学网站的建设网站开发公司比较有名
  • 需要做网站设计海南网页制作
  • 开发网站有什么用仿站小工具官网