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

网站建设国际标准最成功设计 网站

网站建设国际标准,最成功设计 网站,开源商城app源码,wordpress tag优化对象池模式#xff0c;Object Pool Pattern#xff0c;当你的应用程序需要频繁创建和销毁某种资源#xff08;比如数据库连接、线程、socket连接等#xff09;时#xff0c;Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中#xff0c;以便在…对象池模式Object Pool Pattern当你的应用程序需要频繁创建和销毁某种资源比如数据库连接、线程、socket连接等时Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中以便在需要时重复使用从而避免了频繁的创建和销毁操作提高了性能和资源利用率换言之用空间换时间。 类图 Object Pool 模式通常由以下几个组件组成 1. 对象池Object Pool 它是一个保存对象实例的集合这些对象在需要时被获取并在不再需要时被释放。对象池还会跟踪哪些对象当前正在被使用哪些是可用的。对象池分三层分别是 ObjectPool, AbstractObjectPool, ConcreteObjectPool. 2. 对象工厂Object Factory 负责创建对象实例并将它们添加到对象池中。当池中没有可用对象时工厂可能会创建新的对象但通常是预先创建一组对象并初始化它们。对象工厂分两层分别是ObjectFactory和ConcreteObjectFactory. 3. 池化对象Poolable Object 存在于对象池中的对象实例。池化对象也分两层分别是PoolableObject和ConcretePoolableObject. Object Pool 的优点包括 性能提升避免了频繁的创建和销毁对象减少了系统开销。资源利用率提高通过重用对象实例减少了资源的浪费。减少竞争在多线程环境下对象池可以减少线程之间对资源的竞争提高了并发性能。 但是Object Pool 也可能存在一些缺点比如可能会增加代码的复杂性特别是在处理对象状态和资源管理方面。此外如果对象的创建和销毁开销相对较小使用对象池可能会产生额外的开销。因此在使用 Object Pool 模式时需要权衡利弊。 示例 import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue;public class ThreadPool {private BlockingQueueRunnable taskQueue;private Thread[] pool;public ThreadPool(int poolSize, int taskQueueSize) {taskQueue new LinkedBlockingQueue(taskQueueSize);pool new Thread[poolSize];for (int i 0; i poolSize; i) {pool[i] new Worker(Thread- i);pool[i].start();}}public void submit(Runnable task) throws InterruptedException {taskQueue.put(task);}private class Worker extends Thread {public Worker(String name) {super(name);}Overridepublic void run() {while (true) {try {Runnable task taskQueue.take();task.run();} catch (InterruptedException e) {Thread.currentThread().interrupt();break;}}}}public static void main(String[] args) {// 创建一个线程池包含3个线程任务队列容量为5ThreadPool threadPool new ThreadPool(3, 5);// 提交10个任务到线程池for (int i 0; i 10; i) {int taskId i;try {threadPool.submit(() - {System.out.println(Task taskId is running on Thread.currentThread().getName());try {Thread.sleep(1000); // 模拟任务执行时间} catch (InterruptedException e) {e.printStackTrace();}});} catch (InterruptedException e) {e.printStackTrace();}}} }运行结果 Task 0 is running on Thread-0 Task 2 is running on Thread-2 Task 1 is running on Thread-1 Task 5 is running on Thread-0 Task 4 is running on Thread-2 Task 3 is running on Thread-1 Task 8 is running on Thread-1 Task 6 is running on Thread-0 Task 7 is running on Thread-2 Task 9 is running on Thread-2 结论 可见同一时间只有3个线程在工作直到将10个任务全部完成。
http://www.pierceye.com/news/493888/

相关文章:

  • 怎样做公司网站介绍仿站网站源码下载
  • 电子商务网站规划与建设摘要软件app定制开发
  • 天水做网站的公司kj6699的seo综合查询
  • 找工程项目信息网站早那么做商城网站
  • 做网站优化销售管理系统排名
  • wordpress导入网站模板wordpress部分图片
  • 无锡做网站365caiyi秘密直播
  • 无锡企业网站制作报价公司做网站需要哪些手续
  • 最好的营销型网站保险购买平台有哪些
  • 网站建设实训的目的网站开发的框架协议
  • 本地郑州网站建设搭建一个网站
  • 如何做网站竞品分析哪个网站可以接任务做兼职
  • 佛山网站关键词网站建设需求分析文档
  • 网站收录地址旅游网站建设的相关报价
  • seo月薪seo优化方法网站快速排名推广渠道
  • 企业网站设计理念如何seo网站
  • 河南移动商城网站建设怎么创建平台卖自己的产品
  • 网上做网站钱被骗了报案有用吗文章自定义wordpress
  • 网站设置成灰色市场监督管理局是什么单位
  • 北京国贸网站建设wordpress需要付费才能看某些页面
  • 郸城网站建设wordpress教程cms
  • 做本地网站赚钱吗?php网站制作过程中遇到的问题及解决办法
  • 上海网站快速排名提升ui是网站建设吗
  • 中信建设有限责任公司洪波seo外链工具
  • 网站服务器和空间有什么区别网站制作的公司哪家效果好
  • 做网站具体收费梅州南站
  • 淘宝禁止了网站建设类wordpress极速优化
  • 山东app网站制作网站建设优化广告流量
  • 做阿里云网站浏览器编程语言
  • 青岛市网站制作企业邮箱密码忘了怎么重置密码