- MPI4.1文档5-语言绑定、进程、错误处理、progress和实现
whyte王
MPI4.1文档详解MPIMPI4HPC高性能计算
本博客参考官方文档进行介绍,全网仅此一家进行中文翻译,走过路过不要错过。官方网址:https://www.mpi-forum.org/参考文档:https://www.mpi-forum.org/docs/mpi-4.1/mpi41-report.pdf引用官方4.1文档方法:@manual{mpi41,author="{MessagePassingInterfaceForum}",title="
- linux下自定义显示文件拷贝进度
王牧犊
Linuxlinux服务器运维
1.首先在终端中执行拷贝命令cp-a-r/path/to/source/./path/to/destination/2.打开新的终端执行进度显示命令bashprogress.sh/path/to/source//path/to/destination/source/3.j脚本"progress.sh"中内容如下#!/bin/bash#src_dir="/path/to/source/"src_di
- 2018-12-13
JennietheQueen
补12.12每日一词1.ItisalarmingthatsuicideinAmericahasbeenontheriseinthepastfewyears.2.Itisalarmingthatmyfriendspentfivesyears'learningFrenchbutnevermadeprogress.太震惊了,我有一个朋友学了五年法语但是从未进步。
- canvas绘制圆形进度条
程序猿小离
javascriptvue.js开发语言
canvas绘制圆形进度条用canvas绘制了一个圆形进度条,记录一下:效果如下:感觉效果还行,不过有待优化代码如下:我是用Vue写的组件的代码:progressCanvas.vueexportdefault{name:'ProgressCanvas',data(){return{drawPgress:0}},mounted(){constaa=setInterval(()=>{this.draw
- C#全屏打开Edge浏览器
太空漫步11
c#edge开发语言
我为什么写这个呢?因为网上关于全屏打开浏览器的都是Chrome的,而按照他们的方法应用在Edge上就失效了。众所周知,C#可以利用Progress打开Windows的某个应用。而我要用Progress打开的不是Edge浏览器,而是命令行窗口。之后输入从微软官网的Edge官方文档中找到的cmd命令全屏打开浏览器并打开百度网址。usingSystem;usingSystem.Diagnostics;u
- 【财商学习】50/90《富爸爸穷爸爸》0427-2019#杭州@陈倩
般若星星灿的垚淼
图片发自App采取行动吧!TakeAction!采取行动吧!Allofyouweregiventwogreatgifts:yourmindandyourtime.上天赐予我们每个人两样伟大的礼物:思想和时间。Itisuptoyoutodowhatyoupleasewithboth.你可以运用这两件礼物去做你愿意做的事情。Witheachdollarbillthatentersyourhand,yo
- Android 垂直seekbar
福州司马懿
#Android自定义控件
android系统自带的拖动条(seekbar)只有横向,这里分享一个垂直的seekbar。原理很简单:(1)在测量控件大小(包括发现控件大小改变时)时,把宽度和高度互换(2)在绘制时将画布顺时针旋转90度,即将拖动条逆时针旋转90度,为了保证从画布的原点开始绘制需要将画布上移视图高度(3)自定义触摸事件,根据触摸的相对位置来修改progress变量的值。代码分享如下(这个代码是很久以前网上找的,
- Vue3教程
m0_59519985
Vuevue
1.1配置环境vue官网:Vue.js-TheProgressiveJavaScriptFramework|Vue.js终端Linux和Mac上可以用自带的终端。Windows上推荐用powershell或者cmd。GitBash有些指令不兼容。安装Nodejs安装地址:Node.js安装@vue/cli打开GitBash,执行:npmi-g@vue/cli如果执行后面的操作有bug,可能是最新版
- 【Redis】redis中的HyperLogLog和GEO
margu_168
redisredislinq数据库
RedisHyperLogLogRedis在2.8.9版本添加了HyperLogLog结构。它是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。在Redis里面,每个HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
- CSS cursor的一些相关属性
小老头头头头
css前端
autocrosshairdefaulte-resizehelpmoven-resizene-resizenw-resizepointerprogresss-resizese-resizesw-resizetextw-resizewait上面是一些cursor的属性,非常多cursor:pointer;这个呈现在页面上是一个小手状,可以用在一些按钮、链接上,让用户看的更明白。cursor:defa
- QProgressBar的简单应用
Halsey Walker
QTqt
功能1:点击按钮,进度条开始滑动,可以根据lineEdit里面的值来设置进度条滑动所需的时间,如果这个值太小,就看不到进度条滑动了。太大的话,就滑动太慢了。功能2:QT有一个封装了进度条的对话框,叫做QProgressDialog,把它设置为模态的之后【pD->setWindowModality(Qt::WindowModal);】,可以在任务执行的时候,避免用户的其他误操作。图中的QComboB
- CV论文--2024.2.20
清风有径
人工智能计算机视觉
1、PaLM2-VAdapter:ProgressivelyAlignedLanguageModelMakesaStrongVision-languageAdapter中文标题:PaLM2-VAdapter:逐步对齐的语言模型打造强大的视觉语言适配器简介:本文展示了渐进式对齐语言模型在连接冻结的视觉编码器和大型语言模型方面的有效性。尽管视觉编码器和大型语言模型的基本架构和预训练方法已经广泛研究,但
- react中如何做到中断diff过程和恢复
_处女座程序员的日常
React前端jsreact.js前端前端框架
workLoop是实现时间切片和可中断渲染的核心,简要说明如下://并发任务的入口functionworkLoopConcurrent(){//PerformworkuntilSchedulerasksustoyield//有任务&是否需要中断while(workInProgress!==null&&!shouldYield()){performUnitOfWork(workInProgress)
- 自定义圆形进度条
一支春夏、几多秋冬
QtDemoqt进度条重绘水波圆弧qt5
效果:通过重绘的方式,实现一个自定义圆形进度条,风格有:圆弧风格、水池风格、圆弧水池风格和水波纹风格具体实现:#ifndefPROGRESSBARPERCENT_H#definePROGRESSBARPERCENT_H#include#ifdefquc#if(QT_VERSION#else#include#endifclassQDESIGNER_WIDGET_EXPORTProgressBarPe
- Atcoder ABC340 A - Arithmetic Progression
王老汉
Java算法题解java开发语言
ArithmeticProgression(等差数列)时间限制:2s内存限制:1024MB【原题地址】所有图片源自Atcoder,题目译文源自脚本AtcoderBetter!点击此处跳转至原题【问题描述】【输入格式】【输出格式】【样例1】【样例输入1】392【样例输出1】3579【样例说明1】【样例2】【样例输入2】10101【样例输出2】10【解题思路】老汉使用到的是XXX的解题方式由a递增到b
- Ubuntu20.04 编译ogre
黑不溜秋的
三维引擎专栏ogre游戏引擎
一:编译Ogresudoapt-yinstalllibgles2-mesa-devlibvulkan-devsudoapt-yinstallglslang-devsudoapt-yinstalllibsdl2-devlibxt-devlibxaw7-devdoxygensudoapt-yinstallmercurialwgethttps://codeload.github.com/OGRECave
- 安卓学习—自定义VIEW 流量统计圆形圈
神农笔记
自定义VIEW流量统计圆形圈最近策划又改需求了不需要上次做的水波纹的球的样式了然后就改成了下面的样子了;20151118162218206.png主要是中间的圈如果UI直接出图的话,很麻烦。于是就自己话了。时间比较急画的比较不好。这边共享这个CircleBar名字取得不好应该叫CircleProgressBar会比较好点。源码提供下载,使用主要如下在主main.xml中申明在Activity中使用
- C# Winform .net6自绘的圆形进度条
漂泊_人生
c#.net开发语言
usingSystem;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Windows.Forms;namespaceNet6_GeneralUiWinFrm{publicclassCircularProgressBar:Control{privateintprogress=0;privateintborderWidth=
- Avalonia学习(二十二)-等待
jason成都
学习uiAvalonia
前端代码(主要是样式)-->后台代码usingAvalonia;usingAvalonia.Controls.Primitives;usingAvalonia.Media;usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceAvaloniaProgressRing{publicclassProgressRing
- 学习Android的第十一天
世俗ˊ
Android学习android
目录AndroidProgressBar进度条ProgressBarProgressBar外观ProgressBar属性ProgressBar方法AndroidProgressBar动图替代圆形进度条范例AndroidProgressBar自定义圆环进度条例子:参考文档AndroidProgressBar进度条在Android中,ProgressBar(进度条)是用于显示任务进度的UI组件,通常用
- 十四、路由鉴权——进度条
小曲曲
vue3.0框架搭建前端
新建文件src\permisstion.tsmain.ts引入安装进度条插件npminprogress//路由鉴权:鉴权:项目当中路由能不能被访问的权限importrouterfrom'@/router'importnprogressfrom'nprogress'//引入进度条样式import'nprogress/nprogress.css'//全局前置守卫router.beforeEach((t
- 【ArcGIS Pro二次开发】(81):文本符号_CIMTextSymbol
规划GIS会
arcgisjava网络
CIMTextSymbol是用于绘制文本图形注释的文本符号。0、属性Angel文本符号的放置角度BlockProgression多行文本的堆叠方向Callout引线DrawSoftHyphen连字符FlipAngle文本翻转(镜像)到位的角度FontEffects上下标FontEncoding获取文字的EncodingFontFamilyName字体名称FontStyleName字形样式,例如粗体
- open3d 点云聚类dbscan
Mr.Q
open3d聚类python
关键代码:labels=np.array(pcd.cluster_dbscan(eps=0.02,min_points=10,print_progress=True))point_cloud_dbscan_clustering.pyimportopen3daso3dimportnumpyasnpimportmatplotlib.pyplotaspltif__name__=="__main__":#
- 【HALCON常用的一些操作】
pengkedz
视觉检测
HALCON文件夹遍历和文件筛选*遍历文件夹list_image_files('C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images','default','recursive',ImageFiles)*筛选bmp及jmp格式的图片tuple_regexp_select(ImageFiles,['\\.(bmp|
- C# WinFrom+AspNetCore WebApi实现大文件下载与上传
漂泊_人生
c#javamysql
客户端UI:服务端WebApi:客户端代码:App.config:自定义进度条:CustomProgressBar.cs(长方形)usingSystem;usingSystem.Windows.Forms;usingSystem.Drawing;namespaceFileUploadAndDown{publicclassCustomProgressBar:ProgressBar{//添加一个属性来
- ROS中用cv_bridge和opencv时出现cv::xxx未定义的问题
羊羊羊羊羊羊羊--
ros中的opencvc++linuxopencv
1前景提要:cv_bridge是ros中常用的消息类型转换的包(ros自带的包),要在ros环境下利用opencv处理USB相机拍摄的视频必须用到cv_bridge(如下图),详见https://blog.csdn.net/Robogreen/article/details/50487382在网上找到相应文章之后(详见https://blog.csdn.net/qq_28306361/articl
- Lily的Scalers Talk第八轮新概念朗读持续力训练Day239 2023-07-26
草木Lily
Lesson22-2Knowledgeandprogress知识和进步Thenknowledgebegantobeaccumulatedaccordingtoasystematicplan.Thetricklebecameastream;thestreamhasnowbecomeatorrent.Moreover,assoonasnewknowledgeisacquired,itisnowturn
- 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之LoadingProgress组件
记忆的小河
harmonyos
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之LoadingProgress组件一、操作环境操作系统:Windows10专业版、IDE:DevEcoStudio3.1、SDK:HarmonyOS3.1+二、LoadingProgress组件用于显示加载动效的组件。子组件无接口LoadingProgress()创建加载进展组件。从APIversion9开始,该接口支持在ArkTS卡片中使用。
- ios11下XHToast、MBProgressHUD不显示弹框,问题解决
夜破星辰_JSON
iOS-进击之路
最近在使用MBProgressHUD时发现不显示弹框,没有任何效果,然后进行追踪调试发现+(UIWindow*)window{//return[[UIApplicationsharedApplication]keyWindow];这是修改后的代码return[[[UIApplicationsharedApplication]windows]lastObject];}返回的UIWindow是_UII
- 【Android入门到项目实战--3.1】—— 七种常用控件的使用(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog等)
四月天行健
Androidandroidandroidstudioidejava
目录一、常用的控件1、TextView2、Button3、EditText4、ImageView5、ProgressBar1)如何让加载条在加载完成时消失?2)如何修改进度条样式?6、AlertDialog7、ProgressDialog本篇主要讲解Android的常用控件。一、常用的控件1、TextViewTextView控件用于在界面上显示一段文本信息。下面尝试实现。XML布局文件代码如下:a
- 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)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方