- ASSERT函数
weixin_34194359
php
assert宏的原型定义在中,其作用是假设它的条件返回错误,则终止程序运行,原型定义:#includevoidassert(intexpression);assert的作用是现计算表达式expression,假设其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort来终止程序执行。http://www.chongtang.me/index.php/1419提高程序健壮性
- C++多线程 -- std::thread的基本用法
qzy0621
C++多线程c++
依赖头文件:#include用法:std::thread和join或detach一起用std::threadt1(调用函数名称,调用函数参数1,调用函数参数2,。。。,调用函数参数n)t1.join();//表示同步(阻塞),调用线程走完,才能走后面的流程t1.detach();//表示异步,主线程只触发此线程,后面和此线程无关多线程传递参数#include#includevoidshow(con
- 深入理解指针5
很会做人
数据结构
一、回调函数是什么?回调函数就是一个通过指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。下面用代码进行理解当a等于1的时候才会打印hehe。#includevoidfunction(){printf("
- C语言中的函数
NaZiMeKiY
C/C++c语言linux开发语言
一.函数:1.函数的概念:函数就是程序中独立的功能2.函数的使用场景:我们需要反复书写的代码,但是又不确定什么时候会用到二.函数的定义和调用:①:函数的结构返回值类型函数名(形参1,形参2,...,形参n){函数体;return返回值;}②:举例:#includevoidstudy(){printf("准备开始学习\n");printf("打开b站\n");printf("打开自己想要学习的课程\
- 嵌入式C语言学习笔记(2)
愿抬头有阳光
c语言学习笔记
1.数组指针数组指针本质上就是一个指针,它里面存放的是数组的首地址。#includevoidshow(int(*p)[4],intn){for(inti=0;i4*4=16;3.命令行传递参数,main函数的标准格式intmain(intargc,constchar*argv[]){return0;}//argc:参数的个数包括./a.out//argv:参数的值列表argv[0]="./a.ou
- Qt选择文件路径,并写入文件
水瓶丫头站住
Qtqt开发语言
以下是使用Qt的QFile和QFileDialog选择路径并写入文件的示例代码:#include#include#include#includevoidwriteFileExample(){//1.获取保存路径QStringfileName=QFileDialog::getSaveFileName(nullptr,//父窗口"保存文件",//对话框标题QDir::homePath(),//默认目录
- 51单片机数码管操作
Alaso_shuang
C51单片机学习51单片机嵌入式硬件单片机
数码管操作静态数码管显示提要点:1.51单片机上的数码管是共阴连接的,所以需要在位选的时候给定低电平(接地)选中其几号LED,而接下来的段选注意一定是从高位到低位输出哦,因为我前面定义的位选三个接口顺序是由高位到低位的!!!#includevoidmain(){P2_4=1;P2_3=0;P2_2=1;P0=0x7D;}自己写的5(共阳数码管)#includevoiddigitalTube(uns
- FX-C++可变参数
lucky1_1star
C++c++windows开发语言
1.C风格的可变参数(C-stylevariadicarguments)C++继承了C语言的可变参数机制,使用...语法。这种方式需要头文件中的宏来访问参数。示例:#include#includevoidprintNumbers(intcount,...){va_listargs;//定义一个va_list类型的变量va_start(args,count);//初始化args,count是最后一个
- 如何使用MATLAB进行高效的GPU加速深度学习模型训练?
百态老人
matlab深度学习开发语言
要使用MATLAB进行高效的GPU加速深度学习模型训练,可以遵循以下步骤和策略:选择合适的GPU硬件:首先,确保您的计算机配备有支持CUDA的NVIDIAGPU,并且其计算能力至少为3.0或以上。可以通过gpuDevice命令检查GPU是否具备加速功能。安装必要的工具箱:确保安装了MATLAB的DeepLearningToolbox和ParallelComputingToolbox,这些工具箱提供
- C/C++中左值引用,右值引用,万能引用的关系和区别
东北豆子哥
C++c语言c++
在C++中,左值引用、右值引用和万能引用是三种不同的引用类型,它们的主要区别在于绑定的对象类型和生命周期管理。以下是它们的详细解释和示例代码。1.左值引用(LvalueReference)左值引用绑定到一个左值(即有名字的、可以取地址的对象)。左值引用通常用于传递参数或延长对象的生命周期。#includevoidprint(int&x){std::coutvoidprint(int&&x){std
- 为排序而生的函数--qsort函数--万物皆可排序
c语言小白666
c语言数据结构算法排序算法
深入解析qsort函数:从void*到比较函数精要一、qsort函数原型解析#includevoidqsort(void*base,//待排序数组首地址size_tnmemb,//数组元素个数size_tsize,//单个元素大小(字节)int(*compar)(constvoid*,constvoid*)//比较函数指针);参数详解表参数类型作用描述basevoid*指向待排序数组的起始位置nm
- 点云边缘提取及可视化
Alan Lan
PCL
点云素材:bunny.txt#include#include#includevoidCreateCloudFromTxt(conststd::string&file_path,pcl::PointCloud::Ptrcloud){std::ifstreamfin(file_path.c_str());std::stringline;pcl::PointXYZpoint;while(getline(
- 归并排序(c语言递归实现)
Epiphany.556
c语言开发语言
#include#include#includevoidMerge(int*a,int*tmp,intlpos,intrpos,intrightend){intoriginal_lpos=lpos;//保存原始左起始位置intleftend=rpos-1;inttmppos=original_lpos;while(lpos<=leftend&&rpos<=rightend){if(a[lpos]<
- STL:List模拟实现
Ghost__s
C++
原理:list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。优点:任意位置的插入删除效率很高(双向迭代)缺点:任意位置的随机访问效率很低list的使用#include#includevoidtest1(){std::listl1(3,10);std::list::iteratorit=l1.begin();//迭代器遍历while
- C++之创建线程
C嘎嘎嵌入式开发
C++c++开发语言
1.使用函数指针最简单的方式是使用一个普通的函数作为线程的入口点。#include#includevoidthreadFunction(){std::cout#includeintmain(){std::threadt([]{std::cout#includeclassMyClass{public:voidmemberFunction(){std::cout#includevoidthreadFu
- c语言用户登录注册代码,c语言-登录代码示例
Chace Xie
c语言用户登录注册代码
最近上课写的代码呵呵于大家共享哈!!~~~希望等待大家的指导!!!#include#includevoidmain(){charname_static[10]="shenwei",name_input[10],sno_static[10]="123456",sno_input[10];printf("***********************************/n");printf("-
- C语言实现两种求最大公约数的方法
王希希呀
c语言
第一种:辗转相除法,#includevoidgys(intx,inty){if(xvoidgys(intx,inty){if(x=1;--i){if(x%i==0&&y%i==0){printf("最大公约数是:%d",i);break;}}}intmain(){inta,b;printf("输入两个数:");scanf("%d%d",&a,&b);gys(a,b);return0;}
- 简要分析NETLINK_KOBJECT_UEVENT参数
TJ_Dream
基础内核函数分析网络
NETLINK_KOBJECT_UEVENT时Linux内核中Netlink协议族的一个特定类型,专门用于传递内核对象(kobject)相关的设备事件消息(称为uevent)。它是实现动态设备管理(如热插拔、驱动加载)的核心机制,支撑了udev、systemd-udevd等用户空间设备管理服务的工作。一、核心作用1.传递设备状态变更事件当设备被添加(如USB插入)、移除(如硬盘拔出)、状态变化(如
- TCP服务端和客户端实例代码
hhaijiuwo
TCP网络编程网络通信socketlinux
1、TCP服务器#include#include#include#include#include#includevoiderror_handling(char*message){fputs(message,stderr);fputc('\n',stderr);exit(1);}intmain(intargc,char*argv[]){intserv_sock;intclnt_sock;struct
- Ubuntu 16.04 interface and networking service.
linuxshadow
不出意外,Ubuntu升级到16.04上又出幺蛾子了,接口名字没有定义在/etc/udev/rule.d/下面了,而是改到了开机启动里面了。InterfaceName修改文件/etc/default/grub“net.ifnames=0biosdevname=0”添加到GRUB_CMDLINE_LINUX变量里面sudoupdate-grub重启之后就可以看到熟悉的eth0,ethX类似的接口名字
- 2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数
小呀小萝卜儿
学习-C/C++学习c语言
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。一、题目描述⭐️裁判测试程序样例:#includevoidprintdigits(intn);intmain(){intn;scanf("%d",&n);printdigits(n);return0;}/*你的代码将被嵌在这里*/输入样例12345输出样例12345二、代码(C语言)⭐️voidprintdigits(intn){if(n
- BMI值(Body Mass Index,简称BMI),是指身高体重指数,是国际上常用的衡量人体肥胖程度和是否健康的重要标准,BMI的计算公式是:体重指数(BMI)=体重(kg)÷身高2(m)。
liuyang___
c语言积累微信小程序小程序javascript
#includevoidisFit(){intkg;doubleBMI,m;printf("请输入体重:");scanf("%d",&kg);printf("请输入身高:");scanf("%lf",&m);BMI=kg/(m*m);if(BMI24){printf("超重");}}intmain(){isFit();}
- (C语言小项目)猜字游戏(测试版)
双叶836
C语言小项目c语言游戏算法数据结构c++开发语言
#include#include#includevoidpage0(){printf("****************************************\n");printf("********1.开始游戏2.退出游戏********\n");printf("********3.游戏难度4.神秘力量********\n");printf("*********************
- PCI-5565反射内存卡的驱动程序--RTX64
机载总线仿真测试
光纤反射内存网络
在RTX实时系统下设计PCI-5565反射内存卡的驱动程序涉及多个步骤,包括硬件初始化、内存映射、中断处理和数据传输。以下是一个基本的设计框架和步骤:###1.硬件初始化首先,需要对PCI-5565反射内存卡进行初始化。这包括配置PCI配置空间、设置基地址寄存器(BAR)以及初始化设备寄存器。```c#include#includevoidpci5565_init(){//查找PCI设备pci_d
- 网络编程:TCP多线程实现多客户端服务器
qq_42343682
网络编程网络多线程
TCP多客户端服务器->远程控制(此篇用多线程实现!)原理图:完整代码如下:#include#include#include#include#include#include#include#includevoid*client_thread(void*arg);sem_tsm;//定义一个信号量intmain(void){//初始化信号量:wqsem_init(&sm,0,0);//1.创建套接字
- c++面试常见问题:C ++内存管理
已是上好佳
c++算法开发语言
1.内存分区在C++里,内存主要分为以下几个区域:栈(Stack):由编译器自动分配和释放,用于存储局部变量、函数参数和返回地址等。其特点是内存分配和释放速度快,遵循后进先出(LIFO)原则。例如:#includevoidfunc(){inta=10;//变量a存储在栈上std::coutintmain(){int*ptr=newint(10);//在堆上分配内存std::coutintgloba
- [电赛]寻迹小车代码
古希腊掌握嵌入式的神
电赛嵌入式硬件stm32
“7”字形循迹/*请注意,这个程序是不能直接使用的,你要自己实现小车的向前,向后,向左,向右,及其延时的子程序*/#includevoidCarGo();voidCarBack();voidCarTurnLeft();voidCarTurnRight();voidDelayms(unsignedcharn);voidCarStop();/*定义循迹传感器管脚*/sbitCLP=P1^0;sbitS
- 防止内存泄漏策略
C嘎嘎嵌入式开发
C++算法数据结构c++
c策略在C语言中,内存管理是一个重要而且容易出错的部分,因为程序员需要手动分配和释放内存。内存泄漏会导致程序占用的内存不断增加,最终可能导致系统资源耗尽。1.一一对应的分配和释放确保每个malloc、calloc或realloc调用都有对应的free调用。保持一个清晰的分配和释放逻辑,避免遗漏。#includevoidexample(){int*ptr=(int*)malloc(10*sizeof
- C语言--iota函数
ppaiml
c语言c语言基础函数
一、iota函数:功能:把一个整数转换为字符串。eg:#include#includevoidmain(){intnumber=43;charstring[100];iota(number,string,2);//2代表转换为二进制。printf("原数=%d,二进制数=%s\n",number,string);}二、将一个int类型变量(4字节),以二进制形式进行输出--showbits.c
- 第14天:C++异常处理实战指南 - 构建安全的文件解析系统
JuicyActiveGilbert
C++教程c++安全开发语言
第14天:C++异常处理实战指南-构建安全的文件解析系统一、今日学习目标掌握C++异常处理的核心语法与流程️理解RAII在资源管理中的关键作用创建自定义文件解析异常体系实现安全的文件解析器原型二、C++异常处理核心机制1.异常处理基础语法#include#include#includevoidparseConfiguration(conststd::string&path){std::ifstre
- 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_