- 详解supervisor配置与案例
燃灯工作室
LinuxPythonlinux运维网络
1.安装supervisoryuminstall-yepel-releaseyuminstall-ysupervisor2.修改supervisord的配置文件,引入任务文件默认配置文件:/etc/supervisord.conf进程管理配置文件放到:/etc/supervisord.d/目录下即可#修改/etc/supervisord.conf的include下的files=supervisor
- Docker + Flask + gunicorn + nginx + supervisord 部署服务
等风来不如追风去
pythonWebnginxflaskdockernginxgunicornpython
DockerfileFROMregistry.cn-hangzhou.aliyuncs.com/hzmodi/python3.8:v2RUNsed-i"s@/archive.ubuntu.com/@/mirrors.163.com/@g"/etc/apt/sources.list\&&rm-rf/var/lib/apt/lists/*\&&apt-getupdate--fix-missing-oA
- 最新2022年Docker面试题高级面试题及附答案解析
Java精选
面试资料容器dokcer容器docker面试题docker资料
所有面试题资料来源:https://www.yoodb.com/Docker题1:如何临时退出一个正在交互的容器的终端,而不终止它?按ctrl-pCtrl-q。如果按ctrl-c往往会让容器内应用进程终止,进而会终止容器。题2:Docker中一个容器可以同时运行多个应用进程吗?一般不推荐在用以容器内运行多个应用进程,如果有类似需求,可以用过额外的进程管理机制,比如supervisord来管理所运行
- supervisord的使用
Zhang小二
英文原文:http://www.supervisord.org/configuration.html简述supervisord是使用python开发的一套进程管理工具,能够将普通进程以daemon的方式启动,并监控进程状态。跟随文件,简单部署并使用了一下,感受如下:1、安装比较简单,先安装setuptools、meld3依赖包,然后安装supervisor包。2、配置也不算麻烦,虽然提供了很多可选
- 知识库-kafka shell脚本用法
知秋ing
kafka从入门到精通kafka分布式
脚本名称用途描述connect-distributed.sh连接kafka集群模式connect-standalone.sh连接kafka单机模式kafka-acls.shtodokafka-broker-api-versions.shtodokafka-configs.sh配置管理脚本kafka-console-consumer.shkafka消费者控制台kafka-console-produc
- supervisor添加环境变量
阿莱_1b6f
只需要在/etc/supervisord/文件夹下,找到程序的配置文件,如/etc/supervisord/superset.conf在配置文件中增加一行environment=SUPERSET_HOME=/home/qboxserver/.superset,SUPERSET_WEBSERVER_PORT=7070多个环境变量用逗号隔开,就可以了,一个完整的配置文件如下[program:super
- Redis主从复制、哨兵模式、群集模式
江南字子川
redisjavagithub
目录一、Redis主从复制(一)定义(二)作用1.数据冗余2.故障恢复3.负载均衡4.高可用基石(三)缺陷(四)流程(五)搭建Redis主从复制1.安装Redis(1)环境准备(2)修改内核参数(3)安装Redis(4)修改配置文件(5)定义systemd服务管理脚本(6)开启服务2.Master节点配置3.Slave节点配置4.验证主从效果(1)在Master节点上看日志(2)通过创建键验证①在
- Celery 部署和监控
爱修仙的道友
监控工具:flowerInstall:pipinstallflowerStart:pythonmanage.pyceleryflower--basic_auth=pyvip:qwe123image.pngimage.png进程管理工具:supervisorInstall:pipinstallsupervisorStart:supervisord-c/etc/supervisord.confTool
- Redis的主从配置,哨兵模式,集群模式
思华年^O^
redis数据库缓存
目录什么是主从复制?主从复制的作用?主从复制的流程?搭建Redis的主从复制安装Redis环境准备修改内核参数安装Redis定义systemd服务管理脚本修改Redis配置文件(Master节点操作)192.168.17.25修改Redis配置文件(Slave节点操作)192.168.17.30192.168.17.26验证主从效果在Master节点上看日志在Master节点上验证从节点Redis
- 进程管理supervisor使用详解
hwholiday
安装apt-getinstallsupervisor配置文件地址/etc/supervisor/supervisord.conf开始给自己需要的脚本程序编写一个子进程配置文件,让supervisor来管理它放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名(每个进程的配置文件都可以单独分拆也可以把相关的脚本放一起)如任意定义一个和脚本相关的项目名称的选项组(/etc/
- redis主从复制、哨兵与集群
luochiying
redis数据库缓存
目录一、概述二、redis主从复制1、概念2、主从复制的作用3、主从复制流程4、搭建Redis主从复制实验①在三台服务器上安装redis(1)关闭防火墙和安全机制(2)修改内核参数(3)安装redis(4)创建redis工作目录(5)准备环境变量(6)定义systemd服务管理脚本②修改Redis配置文件③测试主从复制三、Redis哨兵模式1、概述2、哨兵模式的作用3、哨兵模式组成4、哨兵模式工作
- Supervisor_快速使用
夜醉梦紅尘
安装无python环境yum-yinstallpython-setuptoolseasy_installsupervisorsupervisord-v有python环境pipinstallsupervisor使用yuminstall-ysupervisor的命令安装会生成默认配置/etc/supervisord.conf和目录/etc/supervisord.d如果没有则自行创建。easy_ins
- Redis主从复制哨兵及集群
伍dLu
redis数据库缓存
目录一.主从复制主从复制的工作原理如下:主从复制的作用:搭建Redis主从复制每台服务器配置:编辑进行编译安装:定义systemd服务管理脚本:开启服务,报错看下内容:修改Redis配置文件(Master节点操作):修改Redis配置文件(Slave节点操作):192.168.233.30(从)与192.168.233.20(从)配置一样.验证主从效果:二.Redis哨兵模式哨兵模式的作用:哨兵结
- NOSQL与REDIS配置与优化
睡美人章繁
nosqlredis数据库
目录一、关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景二、Redis1.Redis介绍2.Redis优点和使用场景三、Redis安装部署1.环境准备2.安装redis3.修改配置文件4.定义systemd服务管理脚本并启动四、redis-benchmark测试工具1.测试五、Redis数据库常用命令六、Redis数据类型1
- 超详细教程:Centos安装Prometheus、Grafana监控Kafka及Linux主机
一座野山
Linuxcentosdockerlinuxcentosprometheus
安装并运行node_exporter下载node_exporter解压到指定/app/exporter编写管理脚本control_node_exporter.sh,并给予权限chmod+xcontrol_node_exporter.sh,脚本内容如下:#!/bin/bashPID_FILE="node_exporter.pid"LOG_FILE="node_exporter.log"###这个路径
- Reids原理及简单命令
Ybaocheng
redis数据库
目录1.关系数据库与非关系型数据库关系型数据库非关系型数据库关系型数据库和非关系型数据库区别数据存储方式不同扩展方式不同对事务性的支持不同总结:2.Redis简介什么是reidsreids优点reids使用场景:reids快的原因Redis数据类型五大基础类型三种特殊的数据类型3.reids安装部署环境准备修改内核参数安装redis修改配置文件定义systemd服务管理脚本启动服务4.Redis命
- 快速部署supervisord详解
争取不加班!
linux运维进程管理进程监控Supervisor
Supervisor是一个用于监控和管理进程的工具。它可以在Unix-like系统中启动、停止、重启和管理后台进程,确保这些进程始终保持运行状态。yumcheck-update更新yum软件包索引yuminstallepel-release-y下载eprl源yuminstallsupervisor-y直接yum下载supervisor创建编辑管理进程的配置文件vim/etc/supervisord
- 在 docker 中启动 supervisor 来监控flask web程序,实现停机自动拉起
dxccccccccccc
dockerflask前端
在docker中启动supervisor来监控flaskweb程序,实现停机自动拉起目录结构-src-supervisor-conf.dapi_test.inisupervisord.conf__init__.pyDockerfilemain.pyweb程序可以是flask、fastapi等,这里只是示例#importos#importsignal#importsysimporttime##fro
- supervisor--go版安装
ellija
golanglinux
系统环境ubuntu18.04安装1、下载指定golang版本的安装包安装包下载地址:https://github.com/ochinchina/supervisord/releases/tag/v0.7.31.1、构建supervisor的目录结构mkdir-p/etc/supervisord/conf.d1.2、supervisor的目录结构1.3、说明目录中的supervisord二进制文件
- Supervisord 远程命令执行漏洞(CVE-2017-11610)
慕筱蚺
python网络安全web安全
漏洞描述:Supervisord是使用Python开发的进程管理程序,Supervisord能够将命令行进程或服务变为后台运行的deamon(守护进程)。Supervisord拥有监控进程状态的功能,在进程异常退出时能够自动重启进程。Supervisord在配置了Web接口后,服务器会启动一个XMLRPC服务器,端口号为9001,利用本漏洞,在获取接口访问权限后,远程攻击者可利用发送一段精心构造的
- Supervisor 链接问题
丑过三八线
杂项
Supervisor链接问题supervisor.sockrefusedconnection通常情况下在supervisor启动之后使用supervisorctl命令对Supervisor管理的应用程序进行管理,但是有时候会出现链接不上的问题,通常存在以下几种情况:supervisor直接挂掉了,客户端链接不上supervisord.conf配置问题。标签[unix_http_server]中未开
- ubuntu 守护进程 supervisor
linzhiji
ubuntulinux服务器
#安装apt-getinstallsupervisor#检查echo_supervisord_conf#查看配置文件所在位置#[include]#files=/etc/supervisor/conf.d/*.confps-ef|grepsupervisorcd/etc/supervisor/conf.d/lscatfrp.conf[program:frp]command=/data/work/fr
- 2019-07-10
python图图
supervisor管理进程简明教程1、Introduction(1)基于python编写,安装方便(2)进程管理工具,可以很方便的对用户定义的进程进行启动,关闭,重启,并且对意外关闭的进程进行重启,只需要简单的配置一下即可,且有web端,状态、日志查看清晰明了。(3)组成部分supervisord[服务端,所以要通过这个来启动它]supervisorctl[客户端,可以来执行stop等命令](4
- windows配置supervisor办法
计算机辅助工程
windowssupervisor
参考:https://blog.csdn.net/jiexijihe945/article/details/134716094#安装supervisorpipinstallsupervisor-win-ihttps://mirrors.aliyun.com/pypi/simple#生成配置文件echo_supervisord_conf.exe>D:\supervisord.conf#配置文件示例[
- Supervisor进程管理工具入门教程
编程小菜鸡~~
supervisor进程
supervisor是一个进程管理工具。有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了supervisor。supervisord:supervisor的服务器端部分,启动supervisor就是运行这个命令supervisorctl:启动supervisor的命令行窗口官网:http://www.supe
- Aria2 + Rclone 实现离线下载 | 完美脚本配置 | 解决无法上传问题
frytea
首先声明,本文完美脚本来自于:P3TERX/aria2.conf,本文记录的是安装完美脚本2020.08.08版本时遇到的问题。安装步骤第一步,安装Aria2这里使用Aria2一键安装管理脚本增强版,执行下面的代码下载并运行脚本,出现脚本操作菜单输入1开始安装。wget-Ngit.io/aria2.sh&&chmod+xaria2.sh&&./aria2.sh第二步,安装和配置RcloneRCLO
- linux环境搭建pypi源,用pypiserver搭建个人的pypi源
钱亚锋
linux环境搭建pypi源
上一篇文章http://www.linuxdiyf.com/linux/25882.html中已经讲了怎么搭建pypi源,但是这个源有很多个人用不到的包而且同步时间长,我只需要一些常用的pypi怎么办?pypiserver可以满足。可以拉取Dockerpullbecivells/pypiserverDockerfile贴出来供大家参考1.supervisord.conf[supervisord]n
- k8s-learning-why we need pod
dian_ke_nan_
kubernetes容器
应用场景应用从虚拟机迁移到容器中为什么虚拟机中的应用不能无缝迁移到容器中虚拟机中应用:一组进程,被管理在systemd或者supervisord中容器的本质:一个容器一个进程所以将运行在虚拟机中的应用无缝迁移到容器中,与容器的本质是相悖的。容器无法像虚拟机那样,完全模拟本地物理机环境中的部署方式。swarm项目无法成长起来的原因:单容器的工作方式,难以描述真实世界里的复杂的应用架构。Pod的本质:
- 【HttpRunnerManager】搭建接口自动化测试平台实战
测试界的路飞
技术分享软件测试jmeterappiumpython
一、需要准备的知识点1.linux:安装python3、nginx安装和配置、mysql安装和配置2.python:django配置、uwsgi配置二、我搭建的环境1.Centos7(配置rabbitmq、mysql、Supervisord)2.python3.6.8(配置django、uwsgi)3.git1.8.3.1(克隆代码)三、搭建过程1.配置数据库(安装mysql,自行百度)新建库:h
- Linux 服务器较为强大的运维及管理脚本实现(支援:本机线上操作)
liulilittle
Extension服务器运维linux
功能:Copyright(C)2019~2023SichuanJiaileNetworkInformationTechnologyCo.,LTD.Allrightsreserved.STGSCRIPT.(X)1.0.0VERSIONUsage:./linux.shmake编译./linux.shmakeld编译(LD)./linux.shmakere编译(RE)./linux.shgitpGit:
- VMware Workstation 11 或者 VMware Player 7安装MAC OS X 10.10 Yosemite
iwindyforest
vmwaremac os10.10workstationplayer
最近尝试了下VMware下安装MacOS 系统,
安装过程中发现网上可供参考的文章都是VMware Workstation 10以下, MacOS X 10.9以下的文章,
只能提供大概的思路, 但是实际安装起来由于版本问题, 走了不少弯路, 所以我尝试写以下总结, 希望能给有兴趣安装OSX的人提供一点帮助。
写在前面的话:
其实安装好后发现, 由于我的th
- 关于《基于模型驱动的B/S在线开发平台》源代码开源的疑虑?
deathwknight
JavaScriptjava框架
本人从学习Java开发到现在已有10年整,从一个要自学 java买成javascript的小菜鸟,成长为只会java和javascript语言的老菜鸟(个人邮箱:
[email protected])
一路走来,跌跌撞撞。用自己的三年多业余时间,瞎搞一个小东西(基于模型驱动的B/S在线开发平台,非MVC框架、非代码生成)。希望与大家一起分享,同时有许些疑虑,希望有人可以交流下
平台
- 如何把maven项目转成web项目
Kai_Ge
mavenMyEclipse
创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web Module的Version为2.5.(3.0为Java7的,Tomcat6不支持). 如果提示错误,可能需要在Java Compiler设置Compiler compl
- 主管???
Array_06
工作
转载:http://www.blogjava.net/fastzch/archive/2010/11/25/339054.html
很久以前跟同事参加的培训,同事整理得很详细,必须得转!
前段时间,公司有组织中高阶主管及其培养干部进行了为期三天的管理训练培训。三天的课程下来,虽然内容较多,因对老师三天来的课程内容深有感触,故借着整理学习心得的机会,将三天来的培训课程做了一个
- python内置函数大全
2002wmj
python
最近一直在看python的document,打算在基础方面重点看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception这四个方面,其实在看的时候发现整个《The Python Standard Library》章节都是很不错的,其中描述了很多不错的主题。先把Build-in Fu
- JSP页面通过JQUERY合并行
357029540
JavaScriptjquery
在写程序的过程中我们难免会遇到在页面上合并单元行的情况,如图所示
如果对于会的同学可能很简单,但是对没有思路的同学来说还是比较麻烦的,提供一下用JQUERY实现的参考代码
function mergeCell(){
var trs = $("#table tr");
&nb
- Java基础
冰天百华
java基础
学习函数式编程
package base;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
// Integer a = 4;
// Double aa = (double)a / 100000;
// Decimal
- unix时间戳相互转换
adminjun
转换unix时间戳
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒 Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 62135
- 作为一个合格程序员该做的事
aijuans
程序员
作为一个合格程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重
- 由html5视频播放引发的总结
ayaoxinchao
html5视频video
前言
项目中存在视频播放的功能,前期设计是以flash播放器播放视频的。但是现在由于需要兼容苹果的设备,必须采用html5的方式来播放视频。我就出于兴趣对html5播放视频做了简单的了解,不了解不知道,水真是很深。本文所记录的知识一些浅尝辄止的知识,说起来很惭愧。
视频结构
本该直接介绍html5的<video>的,但鉴于本人对视频
- 解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat
bewithme
httpclient
如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path bu
- Jedis连接池的入门级使用
bijian1013
redisredis数据库jedis
Jedis连接池操作步骤如下:
a.获取Jedis实例需要从JedisPool中获取;
b.用完Jedis实例需要返还给JedisPool;
c.如果Jedis在使用过程中出错,则也需要还给JedisPool;
packag
- 变与不变
bingyingao
不变变亲情永恒
变与不变
周末骑车转到了五年前租住的小区,曾经最爱吃的西北面馆、江西水饺、手工拉面早已不在,
各种店铺都换了好几茬,这些是变的。
三年前还很流行的一款手机在今天看起来已经落后的不像样子。
三年前还运行的好好的一家公司,今天也已经不复存在。
一座座高楼拔地而起,
- 【Scala十】Scala核心四:集合框架之List
bit1129
scala
Spark的RDD作为一个分布式不可变的数据集合,它提供的转换操作,很多是借鉴于Scala的集合框架提供的一些函数,因此,有必要对Scala的集合进行详细的了解
1. 泛型集合都是协变的,对于List而言,如果B是A的子类,那么List[B]也是List[A]的子类,即可以把List[B]的实例赋值给List[A]变量
2. 给变量赋值(注意val关键字,a,b
- Nested Functions in C
bookjovi
cclosure
Nested Functions 又称closure,属于functional language中的概念,一直以为C中是不支持closure的,现在看来我错了,不过C标准中是不支持的,而GCC支持。
既然GCC支持了closure,那么 lexical scoping自然也支持了,同时在C中label也是可以在nested functions中自由跳转的
- Java-Collections Framework学习与总结-WeakHashMap
BrokenDreams
Collections
总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。
强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集
- 读《研磨设计模式》-代码笔记-解释器模式-Interpret
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 解释器(Interpreter)模式的意图是可以按照自己定义的组合规则集合来组合可执行对象
*
* 代码示例实现XML里面1.读取单个元素的值 2.读取单个属性的值
* 多
- After Effects操作&快捷键
cherishLC
After Effects
1、快捷键官方文档
中文版:https://helpx.adobe.com/cn/after-effects/using/keyboard-shortcuts-reference.html
英文版:https://helpx.adobe.com/after-effects/using/keyboard-shortcuts-reference.html
2、常用快捷键
- Maven 常用命令
crabdave
maven
Maven 常用命令
mvn archetype:generate
mvn install
mvn clean
mvn clean complie
mvn clean test
mvn clean install
mvn clean package
mvn test
mvn package
mvn site
mvn dependency:res
- shell bad substitution
daizj
shell脚本
#!/bin/sh
/data/script/common/run_cmd.exp 192.168.13.168 "impala-shell -islave4 -q 'insert OVERWRITE table imeis.${tableName} select ${selectFields}, ds, fnv_hash(concat(cast(ds as string), im
- Java SE 第二讲(原生数据类型 Primitive Data Type)
dcj3sjt126com
java
Java SE 第二讲:
1. Windows: notepad, editplus, ultraedit, gvim
Linux: vi, vim, gedit
2. Java 中的数据类型分为两大类:
1)原生数据类型 (Primitive Data Type)
2)引用类型(对象类型) (R
- CGridView中实现批量删除
dcj3sjt126com
PHPyii
1,CGridView中的columns添加
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style=&
- Java中泛型的各种使用
dyy_gusi
java泛型
Java中的泛型的使用:1.普通的泛型使用
在使用类的时候后面的<>中的类型就是我们确定的类型。
public class MyClass1<T> {//此处定义的泛型是T
private T var;
public T getVar() {
return var;
}
public void setVa
- Web开发技术十年发展历程
gcq511120594
Web浏览器数据挖掘
回顾web开发技术这十年发展历程:
Ajax
03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
- openSession()与getCurrentSession()区别:
hetongfei
javaDAOHibernate
来自 http://blog.csdn.net/dy511/article/details/6166134
1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。
这里getCurrentSession本地事务(本地
- 第一章 安装Nginx+Lua开发环境
jinnianshilongnian
nginxluaopenresty
首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒
- HSQLDB In-Process方式访问内存数据库
liyonghui160com
HSQLDB一大特色就是能够在内存中建立数据库,当然它也能将这些内存数据库保存到文件中以便实现真正的持久化。
先睹为快!
下面是一个In-Process方式访问内存数据库的代码示例:
下面代码需要引入hsqldb.jar包 (hsqldb-2.2.8)
import java.s
- Java线程的5个使用技巧
pda158
java数据结构
Java线程有哪些不太为人所知的技巧与用法? 萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常
工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。
- 开发资源大整合:编程语言篇——JavaScript(1)
shoothao
JavaScript
概述:本系列的资源整合来自于github中各个领域的大牛,来收藏你感兴趣的东西吧。
程序包管理器
管理javascript库并提供对这些库的快速使用与打包的服务。
Bower - 用于web的程序包管理。
component - 用于客户端的程序包管理,构建更好的web应用程序。
spm - 全新的静态的文件包管
- 避免使用终结函数
vahoa.ma
javajvmC++
终结函数(finalizer)通常是不可预测的,常常也是很危险的,一般情况下不是必要的。使用终结函数会导致不稳定的行为、更差的性能,以及带来移植性问题。不要把终结函数当做C++中的析构函数(destructors)的对应物。
我自己总结了一下这一条的综合性结论是这样的:
1)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方