- libwebsockets实现异步websocket客户端,服务端异常断开可重连
jbjhzstsl
websocket
libwebsocketswebsocket客户端基本流程网上都有,我只额外优化了重连机制。在服务器异常断开时不触发LWS_CALLBACK_CLOSED或LWS_CALLBACK_CLIENT_CONNECTION_ERROR,导致无法自动重连通过定时检查链接是否可写入判断链接是否有效//判断wsi是否可用if((std::chrono::duration_cast(std::chrono::s
- redis中jedis和lettuce pool的区别,那个更好,使用范围更广
青春不流名
redisbootstrap前端
在Redis的Java客户端中,Jedis和Lettuce是两种最常用的客户端库,它们都支持连接池(JedisPool和LettuceConnectionPool),但在设计和特性上有显著差异。下面我将详细对比它们的特点,帮助你更好地选择适合的库。1.同步vs异步Jedis:是一个同步的Redis客户端库。每次操作都会阻塞当前线程,直到Redis响应完成。这使得它易于理解和使用,但如果Redis响
- nginx ngx_event_t结构体详解
securitysun
nginx开发学习汇总nginxopenresty计算机网络
结构体EventHandling|NGINXngx_event_t:为添加到循环event事件使用的event事件结构体。typedefstructngx_event_sngx_event_t;结构体声明所在位置ngx_core.h。ngx_event_s结构体所在位置ngx_event.h。structngx_event_s{//事件上下文数据,通常data都是指向ngx_connection_
- python nginx部署_nginx部署python应用
weixin_39611070
pythonnginx部署
2.nginx配置文件如下:#位于/nginx/conf/nginx.conf#usernobody;worker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout185;server{l
- ActiveMQ监听器在MQ重启后不再监听问题
四脚小蜗
ActiveMqactivemq
应用的监听器注解@JmsListener(destination="TopicName",containerFactory="FactoryName")工厂代码@BeanJmsListenerContainerFactoryFactoryName(ConnectionFactoryconnectionFactory){SimpleJmsListenerContainerFactoryfactory
- python中使用单例模式在整个程序中只创建一个数据库连接,节省资源
背太阳的牧羊人
python数据库数据库python单例模式
示例代码:fromloguruimportloggerfrompymongoimportMongoClientfrompymongo.errorsimportConnectionFailurefromllm_engineering.settingsimportsettingsclassMongoDatabaseConnector:_instance:MongoClient|None=Nonedef
- java redis pipeline,redis pipeline简介
神奇激光世界
javaredispipeline
java中redis的pipelinepipeline方式执行redis操作:Listresults=this.getRedisTemplate().executePipelined(newRedisCallback(){@OverridepublicObjectdoInRedis(RedisConnectionconnection)throwsDataAccessException{RedisS
- Failed to instantiate [org.springframework.data.redis.connection.jedis.JedisConnectionFactory实例化配置失败
道阻且长-行则将至-行而不辍-未来可期
redis缓存springbootspring
前言:主要最近重构升级底层依赖版本,导致原先的一个系统以及完全起不来了。原来的SpringBoot版本是2.0.3.RELEASE我这边给升级到SpringBoot版本:[2.3.12.RELEASE],Spring版本:[5.2.15.RELEASE]原来的一些配置都会失效,导致错误不断,用了一个星期左右来进行解决这些问题,问题很多但是记录下来的就这些吧,以供后来者学习一下,避免跳进这些坑。目录
- redis长时间未请求,无法自动重连,报异常org.springframework.data.redis.RedisSystemException
小池先生
redis数据库缓存
org.springframework.data.redis.RedisSystemException:Redisexception;nestedexceptionisio.lettuce.core.RedisException:io.netty.channel.unix.Errors$NativeIoException:readAddress(..)failed:Connectionresetb
- MQ和ActiveMQ浅析
星星都没我亮
ActiveMQactivemq
文章目录什么是JMSMQ消息中间件应用场景异步通信缓冲解耦冗余扩展性可恢复性顺序保证过载保护数据流处理常用消息队列(ActiveMQ、RabbitMQ、RocketMQ、Kafka)比较JMS中的一些角色BrokerproviderConsumerp2ppub/subPTP和PUB/SUB简单对QueueTopicConnectionFactoryConnectionDestinationSess
- Transformer 架构深度剖析
时光旅人01号
人工智能技术科普transformer深度学习人工智能condaopencv计算机视觉
一、Transformer架构核心设计1.1整体架构Transformer由编码器(Encoder)和解码器(Decoder)堆叠而成,每个层包含:多头自注意力(Multi-HeadSelf-Attention)前馈网络(Feed-ForwardNetwork,FFN)残差连接(ResidualConnection)和层归一化(LayerNorm)关键特性:完全基于注意力机制,摒弃了循环和卷积结构
- Feign性能优化以及最佳实践
南川北渔
SpringCloud性能优化okhttp
1.Feign性能优化Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:•URLConnection:默认实现,不支持连接池•ApacheHttpClient:支持连接池•OKHttp:支持连接池优化1:因此提高Feign的性能主要手段就是使用**连接池**代替默认的URLConnection。优化2:日志的级别,根据项目测试,确定最大连接数和单个路径的最大连接数,日志尽量用
- python openai 网络连接报错
哦里 哦里哦里给
AI大语言模型实战pythonai
目录一、问题:网络连接报错二、解决办法一、问题:网络连接报错File"/opt/anaconda3/envs/openaitest/lib/python3.8/site-packages/openai/_base_client.py",line1024,in_requestraiseAPIConnectionError(request=request)fromerroropenai.APIConn
- vue项目提示 WebSocketClient.js:49 WebSocket connection to ‘ws://xxxx/ws‘ failed: Invalid frame header
Beamon__
vuevue.js前端
项目信息vue-cli创建的vue3+webpack5项目;问题现状配置proxy代理后,控制台报错,不影响使用,但是不美观,并且不利于在控制台调试代码;原因定位代理问题,新配置的接口代理,影响到了项目内置的本地服务代理配置,参考Websocketconnectionfailed,Invalidframeheader·Issue#1850·vuejs/vue-cli·GitHub解决方案方案一一刀
- MySQL底层原理
编织幻境的妖
mysql数据库
1.请解释MySQL的逻辑架构和物理架构。MySQL的逻辑架构和物理架构涉及到多个层面,包括网络连接、服务处理、存储引擎以及数据存储等部分。具体如下:逻辑架构:连接层(ConnectionLayer):客户端通过TCP/IP或其他方式连接到MySQL服务器。为了解决频繁创建和销毁连接带来的性能问题,MySQL使用TCP连接池和线程池来管理连接和执行任务。服务层(ServiceLayer):这一层包
- jenkins通过ssh连接远程服务器出错解决方案(Algorithm negotiation fail)
luopeng207663436
jenkinsssh服务器
错误截图jenkins.plugins.publish_over.BapPublisherException:FailedtoconnectandinitializeSSHconnection.Message:[Failedtoconnectsessionforconfig[192.168.13.104].Message[Algorithmnegotiationfail]]将需要连接的目标服务器通
- MsSqlServer2022的jdbc的url的连接属性
kfepiza
Database数据库sql关系型非关系型nosqlJAVAmicrosoftsqlserver数据库
MsSqlServer2022的jdbc的url的连接属性官方文档LearnSQL连接设置连接属性https://learn.microsoft.com/zh-cn/sql/connect/jdbc/setting-the-connection-properties?view=sql-server-ver16下载JDBC驱动程序可以通过多种方式指定连接字符串的属性:当使用DriverManager
- ERROR 2061 (HY000): Authentication plugin ‘caching_sha2_password‘ reported error: Authentication
喝醉酒的小白
MySQLmysqljava数据库
错误信息“ERROR2061(HY000):Authenticationplugin‘caching_sha2_password’reportederror:Authenticationrequiressecureconnection.”表示MySQL数据库配置了caching_sha2_password认证插件,并要求使用安全连接来进行身份验证。该错误通常出现在以下情况下:使用的MySQL客户端
- High-Temperature solder on Flip Chips and Low-Temperature Solder Paste on Laminate Substrates
px5213344
pcb工艺
Flip-chipinterconnectiontechnologyhasbeenwidelyusedinhigh-performanceandconsumerelectronics.High-performancepackaginghasachievedsteadydevelopment,realizingtheinterconnectionwithmorethan10,000I/Osandap
- cmd命令
sanzk
cmd
常用命令查看电脑名称:hostname查看网卡信息:ipconfig快速打开网络设置界面:control.exenetconnections或rundll32.exeshell32.dll,Control_RunDLLncpa.cpld打开防火墙设置:wf.msc指定网卡设置IP地址:netshinterfaceipv4setaddressname="WLAN"static6.6.6.22255.
- ADO.NET 面试题
哈希疯
.net数据库microsoft
这里写自定义目录标题什么是ADO.NET?ADO.NET的主要特点有哪些?ADO.NET的四个组件分别是什么?什么是Connection串?Connection的状态有哪些?什么是DataAdapter?DataAdapter的作用是什么?什么是DataSet?ADO.NET中如何使用事务?什么是存储过程?存储过程的优劣何在?优点缺点什么是参数化查询?什么是事务?事务的并发控制有哪些?什么是连接池
- An SSL error has occurred and a secure connection to the server cannot be made.
piggy514
ssl网络协议网络
用户访问iOSapp的网络功能提示上述错误。开始以为是服务器ssl配置问题,后来发现是用户在国外,让他换成4g就可以了。再让他换回wifi,发送服务器网址,访问不了,显示ERR_SSL_PROTOCOL_ERROR,进而发现他wifi所在网络的运营商禁止了服务器域名的访问。
- 用Lua脚本实现Redis原子操作
Cloud_.
luaredis开发语言
1.环境准备依赖:在pom.xml中添加SpringDataRedis:org.springframework.bootspring-boot-starter-data-redis配置RedisTemplate:@ConfigurationpublicclassRedisConfig{@BeanpublicRedisTemplateredisTemplate(RedisConnectionFact
- ranger集成starrock报错
蘑菇丁
大数据+机器学习+oracle大数据
org.apache.ranger.plugin.client.HadoopException:initConnection:UnabletoconnecttoStarRocksinstance,pleaseprovidevalidvalueoffield:{jdbc.driverClassName}..com.mysql.cj.jdbc.Driver.可能的原因JDBC驱动缺失:运行环境中没有安
- Redis线上问题排查指南:常见错误与解决思路
小小鸭程序员
javaspringbootspringcloudspring后端
作为高性能的内存数据库,Redis在线上环境中承担着缓存、队列、计数器等重要角色。然而,面对复杂的生产环境,Redis也难免会遇到各种“疑难杂症”。本文结合实战经验,总结Redis线上问题排查思路与解决方案,助你快速定位问题,恢复业务稳定。一、常见问题分类与排查方向1.连接问题现象:客户端无法连接Redis,返回Connectionrefused或超时错误。排查步骤:检查网络连通性:telnet验
- 【C++项目】从零实现RPC框架「一」:项目准备与前置知识学习
Zfox_
C++从入门到精通c++rpc项目分布式muduojsoncpplinux
个人主页:Zfox_系列专栏:C++从入门到精通目录一:项⽬介绍二:技术选型三:开发环境四:Ubuntu-22.04环境搭建五:第三⽅库使⽤介绍JsonCpp库Json数据格式JsonCpp介绍JsonCpp使⽤Muduo库Muduo库是什么通俗解释Muduo库常⻅接⼝介绍TcpServer类基础介绍EventLoop类基础介绍TcpConnection类基础介绍TcpClient类基础介绍Buf
- 基于jsp+servlet+mysql实现增删改查
蟹黄味汉堡
mysqlservletjsp
#声明单纯记录学习计算机当中所遇到的问题把解决问题的方法分享给大家希望大佬不要喷我这个小白#链接mysql数据库publicclassBaseDao{publicConnectiongetConnection()throwsClassNotFoundException,SQLException{//url里的demo4为数据库名称Stringurl="jdbc:mysql://localhost:
- 【Zinx】Day5-Part4:Zinx 的连接属性设置
YGGP
计算机网络GolangProject服务器golang
目录Day5-Part4:Zinx的连接属性设置给连接添加连接配置的接口连接属性方法的实现测试Zinx-v1.0总结Day5-Part4:Zinx的连接属性设置在Zinx当中,我们使用Server来开启服务并监听指定的端口,当接收到来自客户端的连接请求之后,Zinx新建Connection来管理与client的连接,Connection负责读取client发送给Server的数据(当然,需要拆包)
- 深入理解 MySQL 架构
sevevty-seven
mysql架构数据库
MySQL是目前最受欢迎的开源关系型数据库管理系统之一,广泛应用于网站开发、企业系统和其他数据密集型应用程序中。为了高效使用MySQL,理解其架构设计是至关重要的。本文将从架构组成、核心组件、存储引擎、扩展性以及性能优化等多个方面深入探讨MySQL的架构。MySQL架构的三层设计MySQL的架构可以分为三层:连接层(ConnectionLayer)这是MySQL的最外层,负责管理客户端的连接。用户
- java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
二十七剑
java开发语言
只需要在url:jdbc:mysql://xxx?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false后面加上&allowPublicKeyRetrieval=true即url:jdbc:mysql://xxx?serverTimezone=Asia/Shanghai&useUnicode=
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多