头文件:algorithminta[]={1,4,7,2,8,9,3,5};1.max_element(first,last)作用:返回数组区间[first,last)中最大元素的位置用法:intt=max_element(a,a+8)-a;//注意要减去a本身的地址cout<
Numpy、Pandas库的使用
貮叁
量化投资分析pythonpython数据分析
目录Numpy1、概述2、基础操作2.1生成一个numpy的array数组:2.2自定义一个新的数据类型:np.dtype()3、并行化思想4、量化分析应用4.1索引选取和切片选择4.2数据转换与规整4.3逻辑条件进行数据筛选4.4通用序列函数4.5文件保存与读取Pandas1、简介2、Series和DataFrame的使用2.1Series2.2DataFrame3、量化分析应用3.1形成一个p
自动化测试 —— Pytest fixture及conftest详解
咖啡加剁椒③
软件测试pytest功能测试软件测试自动化测试程序人生职场和发展
前言fixture是在测试函数运行前后,由pytest执行的外壳函数。fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在,类似unittest中setup/teardown,但是比它们要强大、灵活很多,它的优势是可以跨文件共享。一、Pytestfixture1.pytestfix
Vue 常见面试题(一)
安生生申
面试题vue.js前端javascript
目录1、Vue的最大的优势是什么?(必会)2、Vue和jQuery两者之间的区别是什么?(必会)3、MVVM和MVC区别是什么?哪些场景适合?(必会)1、基本定义2、使用场景3、两者之间的区别4、Vue数据双向绑定的原理是什么?(必会)5、Object.defineProperty和Proxy的区别(必会)6、Vue生命周期总共分为几个阶段?(必会)7、第一次加载页面会触发哪几个钩子函数?(必会)
Python极速入门:五分钟开启实战之旅!
知白守黑V
Python编程语言系统运维python编程语言python开发python学习python入门python数据分析
1.Python基础语法和结构:了解Python的基本语法,包括变量、数据类型、运算符、注释等。控制流:掌握条件语句(if-elif-else)、循环(for和while)及其控制(break和continue)。函数:学习如何定义和使用函数,包括参数传递、返回值、作用域和闭包。模块和包:理解如何导入和使用模块,以及如何创建和使用自己的包。2.数据处理列表、元组和集合:学习这些序列类型的操作和方法
Kotlin非常用关键字使用记录
Developings
kotlin开发语言android
1,typealias声明一个类型别名。样例:typealiasMyBean=ItemBeandataclassItemBean(valtitle:String,valintent:Intent)valbean=MyBean("11",Intent())实现了将ItemBean数据模型取了一个别名MyBean,后续我们可以像使用别名一样使用他们2,crossinline禁止传递给内联函数的lamb
lua 判断字符串是否包含指定字符
笨死de猪
lua开发语言
一、string.find在Lua中,如果你想判断一个字符串是否包含特定的子字符串(例如a),你可以使用string.find函数。string.find函数会搜索第一个参数(字符串)中第二个参数(子字符串)出现的位置。如果找到了子字符串,它会返回子字符串开始和结束的位置(两个索引);如果没有找到,它会返回nil。以下是一个示例,展示如何判断一个字符串是否包含a:functioncontainsD
javascript 日期转换为时间戳,时间戳转换为日期的函数
cdcdhj
javascript学习日记javascript开发语言ecmascript
日期转化为时间戳,主要用valueOf()来进行转化为毫秒时间戳,getTime()IOS系统无法解析转换,所以都有valueOf()letgetTimestampOrDate=function(timestamp){lettimeStamp='';constregex=/^\d{4}(-|\/)\d{2}(-|\/)\d{2}$/;constregex2=/^\d{4}(-|\/)\d{2}(-
Vue 模版编译原理
I will.874
vue.jsjavascript前端
当我们使用Vue编写完一个组件以后,Vue会根据模版编译一个render函数,调用render函数生成虚拟DOM,然后将虚拟DOM映射成真实DOM当数据发生变化时,Vue会触发更新视图,调用render函数返回新的虚拟DOM,对比新旧虚拟DOM,修改真实DOM,从而更新页面在此期间,有以下4个关键步骤:模版编译。生成渲染函数render执行render函数生成虚拟DOM首次渲染,根据虚拟DOM生成
DCGAN中的生成器和识别器代码详解
YYLin-AI
DCGAN深度学习celebatensorflow
#DCGAN中的生成器我自己写的有一个封装好的用于生成器和识别器的卷积操作但是在这个代码中我没有使用我自己的代码#原因想绍一下tensorflow自带的函数所以找了一个以前在书上的代码申明一下这个不是原创但是原来代码中有几处不符合DCGAN的要求所以就做了一些修改转载链接没有就直接写成原创建议看代码之前先看看DCGAN的特点,然后再看代码中如何实这些特点的这样会更有帮助DCGAN(深度卷积的对抗生
reactive和ref的异同、toRef和toRefs的使用
Niucode
vue3vue.js前端javascript
一、reactive和ref有了reactive为什么还要ref?ref处理起基本数据类型来更加的方便快捷,性能要更好。ref内部值的变化只会触发订阅它的副作用函数(effect)更新,而reactive(Proxy)内部对象的任何属性变化都会触发整个对象的重新渲染。相同点:都是Vue3提供的用于创建响应式数据的函数;在组件中都能够触发视图更新,实现数据的双向绑定。不同点:数据类型:reactiv
突破编程_C++_C++11新特性(多线程编程的原子操作(2))
breakthrough_01
c++算法
1std::atomic的加载与存储操作加载和存储操作是std::atomic最基础的两种操作。加载操作加载操作是通过load成员函数实现的,它用于从原子变量中读取一个值。这个函数可以确保在读取过程中,不会被其他线程打断。std::atomicatomic_var(10);//初始化一个原子变量,初始值为10intvalue=atomic_var.load();//原子加载操作,将atomic_v
【HBZ分享】ES的聚合函数汇总
hbz-
elasticsearchjavalinux
聚合分类指标聚合:对数据集求最大、最小、和、平均值等指标的聚合,称为指标聚合metric格式:GET/index/_search{"size":0,"aggs":{"aggregation_name":{"aggregation_type":{"aggregation_field":"field_name"//可选参数}}//可以添加更多的聚合}}#解析-index:要执行聚合查询的索引名称。-s
【前端学习——js篇】7.函数缓存
笔下无竹墨下有鱼
前端学习前端学习javascript
具体见:https://github.com/febobo/web-interview7.函数缓存函数缓存,就是将函数运算过的结果进行缓存本质上就是用空间(缓存存储)换时间(计算过程)常用于缓存数据计算结果和缓存对象。其实现主要通过闭包、柯里化和高阶函数。下面主要介绍下柯里化:①柯里化柯里化(currying)是一种函数式编程的概念,指的是将一个带有多个参数的函数转换成一系列只接受一个参数的函数的
动态多态的注意事项
Austin_1024
动态多态静态多态虚函数子类重写父类虚函数实现动态多态
大家好:衷心希望各位点赞。您的问题请留在评论区,我会及时回答。多态的基本概念多态是C++面向对象三大特性之一(多态、继承、封装)多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别:静态多态的函数地址早绑定——编译阶段确定函数地址。动态多态的函数地址晚绑定——运行阶段确定函数地址。下面通过案例讲解多态:#incl
Pytest 自定义HOOK函数
咖啡加剁椒④
软件测试pytestpython开发语言软件测试功能测试自动化测试程序人生
除了系统提过的HOOK函数外,也可以通过自定义HOOK的方式实现想要的功能。首先创建一个py文件,里面定义自己的HOOK函数,主要pytest里面的hook函数必须以pytest开头。#myhook.pydefpytest_myhook(user):"""自定义HOOK函数"""defpytest_myhook2():"""自定义HOOK函数"""其次创建自己的插件类,user类的重写__init
Qt中对主窗口的一些基本操作
徐kun按门铃
Qt学习cssc++
一,给主窗口添加背景我们在做Qt项目的时候,难免需要在主场口上面添加背景图片,一般有两种方法来实现这一功能,可以在主窗口上面粘贴一个很大的QLabel然后在QLabel上面绘制图片,一般不会这样做,另外一种放法我们就需要重写绘制事件函数。paintEvent事件是在窗口状态改变之后处罚的,窗口的状态改变,可以是大小改变,也可以是别的。如下:头文件:protected://只要窗口状态改变自动调用此
C/C++中的Static关键字
SuhyOvO
C语言C++c语言c++
Static关键字在C和C++编程中是不可或缺的一部分,它用于定义具有持久存储期的变量和函数,以及类的静态成员。虽然它的使用相对直接,但不恰当的使用可能会导致难以调试的错误和混淆。本文将探讨static关键字的概念、作用以及在C和C++中的具体应用。文章目录第一部分:深入理解Static关键字定义和基本概念在C和C++中static的基本作用第二部分:Static在C语言中的使用静态全局变量静态局
C++进阶学习(3)类类型转换
一只特立独行猪
C++的学习c++学习
文章目录一、类类型转换1.构造函数构造2.类型转换函数一、类类型转换数据类型转换在程序编译时或在程序运行实现基本类型←→基本类型基本类型←→类类型类类型←→类类型类对象的类型转换可由两种方式说明:构造函数转换函数称为用户定义的类型转换或类类型转换,有隐式调用和显式调用方式1.构造函数构造当类ClassX具有以下形式的构造函数:说明了一种从参数arg的类型到该类类型的转换ClassX::ClassX
C++ 如何去认识模板
SuhyOvO
C++c++开发语言
引言:C++模板是泛型编程的基石,允许程序员定义可与任何数据类型协作的函数和类。这种机制极大地增加了代码的灵活性和复用性,是C++最强大的特性之一。本文将深入探讨C++模板的概念、优势以及使用方法,帮助读者掌握这一重要的编程工具。文章目录模板简介模板的优势一、模板基础1.1模板的概念1.2函数模板1.3类模板二、模板进阶2.1模板的实例化2.2模板的特化2.3模板的默认参数2.4模板的嵌套三、模板
“异步”是什么意思?
小林想被监督学习
系统架构设计师面试计算机基础java开发语言
含义“异步”在计算机科学中,指的是一种操作模式,其中操作被发起后,不必等待该操作完成,可以继续执行其他任务。也就是说异步操作不会去阻塞后续代码的执行,当操作完成时,通常会通过回调函数、事件或其他机制来通知应用程序。例子例如在事件驱动架构风格中,异步通信是核心特性之一。事件的生产者(发布者)发布了事件以后,不会等待任何消费者(订阅者)的响应,继续执行后续的任务。消费者感知到事件触发了以后,就自己安排
freertos3
地中海的小岛
java开发语言
CMSIS的作用:1.提供了接口标准,便于移植和管理。2.提供了很多第三方固件,便于业务开发。3.因为统一了接口,使底层硬件和上层应用耦合降低,更换硬件平台时只需开发人员改变底层硬件的驱动即可,上层业务应用程序无需做改动。创建任务函数:osThreadId_tosThreadNew(osThreadFunc_tfunc,void*argument,constosThreadAttr_t*attr)
C++ primer 第十二章
红鼻子怡宝
c++primerc++开发语言
动态分配的对象的生存期与它们在哪里创建无关,只有当显式地被释放时,这些对象才会销毁。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。栈内存用来保存定义在函数内的非static对象。堆内存用来存储动态分配的对象。静态或栈内存中的对象由编译器自动创建和销毁,而堆内存中的对象必须显式地销毁它们。1.动态内存与智能指针运算符new在动态内存中为对象分配空间并返回一
深度学习如何入门?
科学的N次方
深度学习
入门深度学习需要系统性的学习和实践经验积累,以下是一份详细的入门指南,包含了关键的学习步骤和资源:预备知识:•编程基础:熟悉Python编程语言,它是深度学习领域最常用的编程语言。确保掌握变量、条件语句、循环、函数等基本概念,并学习如何使用Python处理数据和文件操作。•数学基础:理解线性代数(矩阵运算、向量空间等)、微积分(导数、梯度求解等)、概率论与统计学(期望、方差、概率分布、最大似然估计
Vue 发送Ajax请求多种方式
Red丶哞
前端vue.jsajax前端
1.发送ajax请求的方式方案一:jq的ajax(在vue中不推荐同时使用)方案二:js原始官方fetch方法方案三:axios第三方2.方案一后端视图函数fromrest_framework.viewsetsimportViewSetfromrest_framework.responseimportResponseclassIndex(ViewSet):defindex(self,request
5. C++ 局部静态变量在什么时候分配内存和初始化?
九五一
C++知识c++javajvm开发语言数据结构
C++局部静态变量在什么时候分配内存和初始化?对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的;如果初始化,那么初始化发生在任何代码执行之前,属于编译期初始化。由于内置变量无须资源释放操作,仅需要回收内存空间,因此程序结束后全局内存空间被一起回收,不存在变量依赖问题,没有任何代码会再被执行!C++引入了对象,这给全局变量的管理带领新的麻烦。C++的对象必须有构造函数生成,并最终执
Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
[宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
[介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh
[email protected]
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_