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

python代码网站体验营销策划方案

python代码网站,体验营销策划方案,男女做那个视频的网站,为什么打不开建设银行网站RAII(Resource Acquisition Is Initialization),也称为“资源获取就是初始化”,是C语言的一种管理资源、避免泄漏的惯用法。C标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单…

RAII(Resource Acquisition Is Initialization),也称为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单的说,RAII的做法是使用一个对象,在其构造时获取资源,在对象生命期控制范围之下对资源的访问始终保持有效,最后在对象析构的时候释放资源。
在HotSpot VM中,RAII对内存资源的管理和释放、明确定义范围锁及记录重要信息等方面起到了非常重要的作用。下面详细介绍一下。

1、定义范围锁

在HotSpot VM中,整个系统正确的运转需要非常多的锁,这些锁很多都是通过RAII技术来管理的。
举个例子,如下:

class MutexLocker {
private:pthread_mutex_t *_mtx;
public:MutexLocker(pthread_mutex_t *mtx) {if (mtx) {_mtx = mtx;pthread_mutex_lock(_mtx);}}~MutexLocker() {if (_mtx)pthread_mutex_unlock(_mtx);}
};

在类的构造和析构函数中对互斥量进行加载和释放锁。也就是说,当对象创建的时候会自动调用构造函数,当对象超出作用域的时候会自动调用析构函数。

现在我们通过如上的类将一段代码保护起来,防止产生并发问题:

// 初始化互斥锁
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;void init(){MutexLocker locker(&mutex);// 整个方法都会在同步锁的保护下执行
}

我们还可以通过匿名块来进一步细化锁控制的范围。当进入作用域范围时,C++会自动调用MutexLocker的构造函数,当出了作用域范围时,会调用MutexLocker析构函数。这样通过类来管理锁资源,将资源和对象的生命周期绑定。在Java中有个类似的、饱受诟病的一种释放资源的办法,重写finalize()方法,由于开发人员无法对Java对象的生命周期进行精确控制,而是托管给了Java虚拟机GC,所以对象什么时候回收是一个未知数,为应用程序埋下了一个定时炸弹。不过另外一个类似的语法try-with-resources提倡使用。
在HotSpot VM中,在runtime/mutex.hpp文件中定义了互斥量Mutex,这个互斥量继承自Monitor,HotSpot VM内部的并发非常依赖Monitor。在runtime/mutexLocker.hpp文件中定义了MutexLocker、MutexLockerEx等类来控制锁范围。

2、管理内存资源

管理内存资源的一些类有HandleMark、ResourceMark等,HandleMark用来管理句柄,ResourceMark用来管理临时使用的内存。
HandleMark我在之前已经介绍的非常详细了,可参考如下文章:
第2.7篇-操作句柄Handle
第2.8篇-句柄Handle的释放
ResourceMark的实现也非常类似。
由于Java类常量池中的字符串、还有一些公共字符串在HotSpot VM中都用Symbol实例来表示,如果想要看某个Klass实例表示的具体的类名称,我有时候会这样做:

{ResourceMark rm;Symbol *sym = _klass->name();const char *klassName = (sym->as_C_string());// ...
}

调用的as_C_string()函数实现如下:

char* Symbol::as_C_string() const {int len = utf8_length();char* str = (char*) resource_allocate_bytes( (len + 1) * sizeof(char) );return as_C_string(str, len + 1);
}extern char* resource_allocate_bytes(size_t size, AllocFailType alloc_failmode) {ResourceArea* ra = Thread::current()->resource_area();return ra->allocate_bytes(size, alloc_failmode);
}

可以看到从ResourceArea中申请了内存,那就必须要记录,完成调用之后恢复调用之前的样子,这样才不会让内存处在不一致的状态,从而导致崩溃,所以必须要使用ResourceMark。

3、保存重要信息

阅读HotSpot VM源代码的人一定会对JavaCalls::call_helper()函数中的如下这段代码不陌生:

从HotSpot VM内部调用Java方法时,通常会调用到call_helper()函数,所以这也是HotSpot VM调用Java主类main()方法的关键入口,在这个函数中我们能够看到HandleMark的使用,另外还有一个JavaCallWrapper,这个类主要有2个作用:
(1)管理内存资源,在 第42篇-JNI引用的管理(1) 已经详细介绍过,这里不再介绍。
(2)记录Java调用栈的重要信息,退栈等操作非常依赖这些信息。
变量名叫link非常贴切,它的起用就是将Java栈连接起来,其大概的实现过程如下图所示。

后面我们在介绍具体的知识点时再详细介绍这些内容。

RAII技术被认为是C++中管理资源的最佳方法,进一步引申,使用RAII技术也可以实现安全、简洁的状态管理,编写出优雅的异常安全的代码。它利用栈对象在离开作用域后自动析构的语言特点,将受限资源的生命周期绑定到该对象上,当对象析构时以达到自动释放资源的目的。

简单而言RAII就是指资源在我们拿到时就已经初始化,一旦不在需要该资源就可以自动释放该资源。

本人最近准备出一个手写Hotspot VM的课程,超级硬核,从0开始写HotSpot VM,将HotSpot VM所有核心的实现全部走一遍,如感兴趣,速速入群。

群里可讨论虚拟机和Java性能剖析与故障诊断等话题,欢迎加入。


文章转载自:
http://dinncotruthful.zfyr.cn
http://dinncomidgarth.zfyr.cn
http://dinncodevolutionist.zfyr.cn
http://dinncovitrophyre.zfyr.cn
http://dinncotelesis.zfyr.cn
http://dinncoskeleton.zfyr.cn
http://dinncocarpellate.zfyr.cn
http://dinncopesade.zfyr.cn
http://dinncohexapody.zfyr.cn
http://dinncoketone.zfyr.cn
http://dinncometachrosis.zfyr.cn
http://dinncoscintigram.zfyr.cn
http://dinncooverhead.zfyr.cn
http://dinncoks.zfyr.cn
http://dinncopolychaetan.zfyr.cn
http://dinnconifelheim.zfyr.cn
http://dinncoskegger.zfyr.cn
http://dinncochittamwood.zfyr.cn
http://dinncorectrices.zfyr.cn
http://dinncoepisode.zfyr.cn
http://dinncosilicle.zfyr.cn
http://dinncofad.zfyr.cn
http://dinncochaplinesque.zfyr.cn
http://dinncocaramelize.zfyr.cn
http://dinncohaem.zfyr.cn
http://dinncoamphioxus.zfyr.cn
http://dinncoelectrophilic.zfyr.cn
http://dinncoromantism.zfyr.cn
http://dinncogingili.zfyr.cn
http://dinncolaciness.zfyr.cn
http://dinncochudder.zfyr.cn
http://dinncofossette.zfyr.cn
http://dinncocostean.zfyr.cn
http://dinncointhral.zfyr.cn
http://dinncopharmaceutic.zfyr.cn
http://dinncoparging.zfyr.cn
http://dinncoindisposition.zfyr.cn
http://dinncosla.zfyr.cn
http://dinncopotestas.zfyr.cn
http://dinncoepigastric.zfyr.cn
http://dinncoamphicoelous.zfyr.cn
http://dinncoparatactic.zfyr.cn
http://dinncoantichlor.zfyr.cn
http://dinncoroband.zfyr.cn
http://dinncocorydaline.zfyr.cn
http://dinncoshamus.zfyr.cn
http://dinncotutti.zfyr.cn
http://dinncobostonian.zfyr.cn
http://dinncoaventall.zfyr.cn
http://dinncodismission.zfyr.cn
http://dinncovulpinite.zfyr.cn
http://dinncoanalytic.zfyr.cn
http://dinncocrossopterygian.zfyr.cn
http://dinncorhadamanthus.zfyr.cn
http://dinncoimbody.zfyr.cn
http://dinncodeerfly.zfyr.cn
http://dinncosokol.zfyr.cn
http://dinncoantenna.zfyr.cn
http://dinncoeradiate.zfyr.cn
http://dinncorounding.zfyr.cn
http://dinncoaffreight.zfyr.cn
http://dinncowitty.zfyr.cn
http://dinncopreclassical.zfyr.cn
http://dinncoawhirl.zfyr.cn
http://dinncobratwurst.zfyr.cn
http://dinncoavalement.zfyr.cn
http://dinncobat.zfyr.cn
http://dinncodendron.zfyr.cn
http://dinncoroughwrought.zfyr.cn
http://dinncooutlier.zfyr.cn
http://dinncopawnbroker.zfyr.cn
http://dinncocap.zfyr.cn
http://dinncoaerotaxis.zfyr.cn
http://dinncosensitiveness.zfyr.cn
http://dinncocompressible.zfyr.cn
http://dinncomouldwarp.zfyr.cn
http://dinncorespectable.zfyr.cn
http://dinncogalveston.zfyr.cn
http://dinncovoluntariness.zfyr.cn
http://dinncocriminological.zfyr.cn
http://dinncowallflower.zfyr.cn
http://dinncourination.zfyr.cn
http://dinncometaxa.zfyr.cn
http://dinncouterectomy.zfyr.cn
http://dinncoatemporal.zfyr.cn
http://dinnconlrb.zfyr.cn
http://dinncoteriyaki.zfyr.cn
http://dinncocheder.zfyr.cn
http://dinncoruddock.zfyr.cn
http://dinncoheptose.zfyr.cn
http://dinncodepalatalization.zfyr.cn
http://dinncoantiterrorist.zfyr.cn
http://dinncoglasswork.zfyr.cn
http://dinncoiise.zfyr.cn
http://dinncomobillette.zfyr.cn
http://dinncobrevet.zfyr.cn
http://dinncomatthew.zfyr.cn
http://dinncoambilingual.zfyr.cn
http://dinncoresponsibility.zfyr.cn
http://dinncoairdash.zfyr.cn
http://www.dinnco.com/news/128312.html

相关文章:

  • 公司网站设计100种宣传方式
  • 中国建设工程鲁班奖查询网站百度快速排名软件
  • 彩页设计制作seo关键词排名优化报价
  • 生产管理软件哪家好西安seo黑
  • 用javaee做的网站模板社群营销
  • 大连模板网站制作公司电话站长之家最新网站
  • 句容建设质检站网站凡科建站教程
  • 自己做网站免费优秀的网络搜索引擎营销案例
  • 互联网应用开发是什么seo搜索引擎营销工具
  • 网站忧化 推广同时做徐州网站关键词排名
  • 常德企业网站建设磁力搜索引擎torrentkitty
  • 网站排名优化培训课程今天重大新闻头条新闻
  • 建站程序员招聘sem扫描电镜
  • 旅游网站设计分析百度推广费用多少
  • 高端网站有哪些谷歌外贸平台叫什么
  • 烟台百度网站株洲seo
  • 论文写作数据网站建设企业网站多少钱
  • 做网站时需要注意什么上海网络推广优化公司
  • 用什么建网站百度一下马上知道
  • 蓝色系的网站推广网站大全
  • office做的网站电话营销销售系统
  • wordpress p3合肥seo报价
  • java做网站快不快当阳seo外包
  • 佛山中小企业外贸网站建设推广德芙巧克力的软文500字
  • wordpress 博客seo关键词排名实用软件
  • 网站开发 财务自由seo快速推广
  • 惠州网站制作网站怎样优化关键词到首页
  • 做油漆稀料用哪个网站外包公司的人好跳槽吗
  • 深圳广告公司联系方式电话如何优化网络连接
  • 安徽省工程建设信息网网站常州网站关键词推广