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

济南精品建站外包公司价格如何建设自己的网站 知乎

济南精品建站外包公司价格,如何建设自己的网站 知乎,简洁企业网站模板,谷歌浏览器手机版下载定义一个名 TablePool class#xff0c;用于管理一个对象池。对象池是一种用于优化内存使用的技术#xff0c;通过重用对象而不是频繁地创建和销毁对象#xff0c;从而减少内存分配和垃圾回收的开销。 设计思路 1. **初始化**#xff1a; - initialize 方法初始化对象…定义一个名 TablePool class用于管理一个对象池。对象池是一种用于优化内存使用的技术通过重用对象而不是频繁地创建和销毁对象从而减少内存分配和垃圾回收的开销。 设计思路 1. **初始化**    - initialize 方法初始化对象池接受三个参数capacity池子的容量即最多可以缓存多少个对象、newFunc创建新对象的函数和 rlsFunc释放对象的函数。    - 根据提供的 capacity预先创建一定数量的对象并存储在队列 _ts 中。 2. **获取对象**    - getObj 方法从对象池中获取一个对象。如果池子中有对象则从队列的头部取出一个对象如果池子为空且提供了 newFunc则调用 newFunc 创建一个新的对象否则返回一个空表。     3. **释放对象**    - releaseObj 方法将一个对象放回池子中。如果提供了 rlsFunc则在放回之前调用 rlsFunc 释放对象。如果对象已经在队列的尾部则记录错误信息因为这意味着对象被重复释放。 4. **销毁对象池**    - release 方法用于销毁对象池将所有成员变量置为 nil。 ### 用途 对象池通常用于需要频繁创建和销毁对象的场景例如游戏开发中的游戏对象、数据库连接池等。通过使用对象池可以显著减少内存分配和垃圾回收的开销提高程序的性能。 ### 注意事项 1. **对象重用**对象池中的对象在被取出后应确保在释放之前不会被修改以避免数据不一致的问题。 2. **错误处理**在 releaseObj 方法中如果尝试释放的对象已经在队列的尾部会记录错误信息。这通常意味着对象被重复释放需要检查代码逻辑。 3. **线程安全**如果对象池在多线程环境中使用需要确保线程安全避免多个线程同时访问和修改对象池。 ---class TablePool local TablePool SimpleClassUtil:class()---param capacity number ---param newFunc fun() : table ---param rlsFunc fun(t : table) void function TablePool:initialize(capacity, newFunc, rlsFunc)local cap capacity or 4---type Queueself._ts Queue:new()self._newFunc newFunc -- or _defaultNewself._rlsFunc rlsFuncif newFunc thenfor i 1, cap doself._ts:pushBack(newFunc())endelsefor i 1, cap doself._ts:pushBack({})endend end---return table 从池子里获取的table function TablePool:getObj()if self._ts thenlocal cnt self._ts:size()if cnt 0 thenif self._newFunc thenreturn self._newFunc()elsereturn {}endelsereturn self._ts:popFront()endend end---param item table 一定是Get返回的table function TablePool:releaseObj(item)if self._ts thenif self._rlsFunc thenself._rlsFunc(item)endif self._ts:peekBack() item thenLogger.error(Try Release item to TablePool Failed! You try Release same item twice., item)elseself._ts:pushBack(item)endend end---overload fun() function TablePool:release(obsolete)if obsolete thenLogger.error(TablePool:release has Changed Name to TablePool:releaseObj!)self:releaseObj(obsolete)returnendself._newFunc nilself._rlsFunc nilself._ts nil endreturn TablePool
http://www.zqtcl.cn/news/926908/

相关文章:

  • 广州建设网站是什么关系wordpress 插件位置
  • 网站建设工作室 怎么样做一个网站需要多少钱
  • 北京网站制作人才免费企业网站源码
  • 微信商城网站怎么做网站备案是先做网站还是做完了备案
  • 工商局网站查询入口wordpress 文章列表顺序
  • 可以做平面设计兼职的网站模板商城建站
  • 织梦网站如何做301跳转畅销营销型网站建设电话
  • 新网企业邮箱保定seo
  • 河南国控建设集团招标网站网上注册公司核名流程
  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法
  • 用wordpress编写网站完整网站开发视频教程
  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备
  • 网站开发小程序快站模板
  • 江苏集团网站建设智慧养老网站开发
  • 外网网址可以做英语阅读的网站怎么原创视频网站
  • 宁波网站建设流程图自己做网站可以揽业务吗
  • 赤峰市建设网站东胜做网站
  • 有口碑的坪山网站建设微信扫一扫登录网站如何做
  • 自己建网站要花多少钱蓟县网站建设
  • 兖州中材建设有限公司网站wordpress免签约接口
  • 湖北网站seo设计成都疾控最新通告
  • 商丘网站建设推广公司配资网站建设多少钱
  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航