- 实时数据流计算引擎Flink和Spark剖析
程小舰
flinkspark数据库kafkahadoop
在过去几年,业界的主流流计算引擎大多采用SparkStreaming,随着近两年Flink的快速发展,Flink的使用也越来越广泛。与此同时,Spark针对SparkStreaming的不足,也继而推出了新的流计算组件。本文旨在深入分析不同的流计算引擎的内在机制和功能特点,为流处理场景的选型提供参考。(DLab数据实验室w.x.公众号出品)一.SparkStreamingSparkStreamin
- python笔记14介绍几个魔法方法
抢公主的大魔王
pythonpython
python笔记14介绍几个魔法方法先声明一下各位大佬,这是我的笔记。如有错误,恳请指正。另外,感谢您的观看,谢谢啦!(1).__doc__输出对应的函数,类的说明文档print(print.__doc__)print(value,...,sep='',end='\n',file=sys.stdout,flush=False)Printsthevaluestoastream,ortosys.std
- Pandas:数据科学的超级瑞士军刀
科技林总
DeepSeek学AI人工智能
**——从零基础到高效分析的进化指南**###**一、Pandas诞生:数据革命的救世主****2010年前的数据分析噩梦**:```python#传统Python处理表格数据data=[]forrowincsv_file:ifrow[3]>100androw[2]=="China":data.append(float(row[5])#代码冗长易错!```**核心痛点**:-Excel处理百万行崩
- Android GreenDao介绍和Generator生成表对象代码
目录(?)[-]介绍创建工程转载请注明:http://blog.csdn.net/sinat_30276961/article/details/50052109最近无意中发现了GreenDao,然后查看了一些资料后,发现这个数据库框架很适合用,于是乎,查看了官网的api,并自己写了一个小应用总结一下它的使用方法。介绍按照国际惯例,在开篇,总要先介绍一下什么是GreenDao吧。首先需要说明的是Gr
- Java8 Stream流的sorted()的排序【正序、倒序、多字段排序】
Tony666688888
javawindows开发语言
针对集合排序,java8可以用Stream流的sorted()进行排序。示例Bean以下我们会使用这个Bean来做示例。publicclassOrder{privateStringweight;privateDoubleprice;privateStringdateStr;//忽略getter、setter、构造方法、toString}字段排序首先是比较器Comparator,形式如下:Compa
- qemu virt-manager 创建虚拟机设置虚拟机桥接网络
三希
网络php开发语言
在virt-manager中设置虚拟机桥接网络的步骤如下:确认主机网络桥接已配置打开终端,执行brctlshow命令查看是否已有桥接接口(通常名为br0或类似名称)如果没有桥接接口,需先创建:sudonano/etc/netplan/01-netcfg.yaml添加类似以下配置(根据实际网卡调整):yamlnetwork:version:2renderer:networkdethernets:en
- 【2025/07/20】GitHub 今日热门项目
Albert_Lsk
Github推荐github开源协议人工智能开源
GitHub今日热门项目每日精选优质开源项目|发现优质开源项目,跟上技术发展趋势报告概览统计项数值说明报告日期2025-07-20(周日)GitHubTrending每日快照数据时间21:28:08实时爬取生成项目总数15个精选热门开源项目⭐总星数392.7K社区认可度指标今日热度+4.5K24小时新增关注数据洞察核心指标项目总览15个精选项目⭐社区认可392.7K总星标数今日热度4.5K新增关注
- 晴空万里Wendy日更(第47天2021-03-02)
Wendy如意芳霏
今日是生日,到这个年龄过生日变成有点觉得自己又老了一岁。生命如花,如果想要自己的未来在掌控中,最好的办法就是不要担心太多,胆大心细去实践。读了埃隆马斯克母亲的自传,发现他们的人生其实遇到了更多的苦难,但是你一旦克服了,就是生命中的一笔不可磨灭的成就,苦难它让你成长,让你的生命有了更深的底蕴,未来遇到各种困难都不再害怕。其实害怕本来就是负作用。如果认准了,没有选择就放手去一搏。今天继续坚持跑步5公里
- 过了中年,过低能耗的生活
戴老师成长记录仪
今天的文章,还是和你分享洞见里面的文章,我发现洞见里的文章,非常好,非常适合,在我们这个时代,我们应该如何思考,应该如何去做,好的,我现在今天就针对这篇问的一些思考,期待能够给你带来一些启发:[if!supportLists]一、[endif]物质低能耗过了中年,对于物质的追求,我们不能够像年轻的时候一样,什么都想要,什么都要的太多,而是要过一个物质低能耗的生活。知足就好,够用就行,这是我们中年人
- 流利说懂你英语笔记要点句型·核心课·Level 8·Unit 3·Part 2·Video 1·Healing Architecture 1
羲之大鹅video
HealingArchitecture1EveryweekendforaslongasIcanremember,myfatherwouldgetuponaSaturday,putonawornsweatshirtandhe'dscrapeawayatthesqueakyoldwheelofahousethatwelivedin.ps:从我记事起,每个周末,我父亲都会在周六起床,穿上一件破旧的运动衫
- Java 笔记 transient 用法
transient关键字用于标记不希望被序列化(Serialization)的字段。序列化是指将对象的状态保存到字节流中,以便将其传输或存储。当使用如ObjectOutputStream进行序列化时,transient修饰的字段将不会被序列化。✅1.使用场景避免序列化敏感信息privatetransientStringpassword;某些字段不需要持久化(如缓存、临时数据)privatetran
- 构建基于Android Studio开发天气预报应用
策划加强小乔
Androidstudioandroid
AndroidStudio开发天气预报应用需要完成API调用、UI设计、数据解析等步骤。以下是基于OpenWeatherMapAPI的实现方法,包含关键代码片段和详细说明。环境准备与项目创建确保已安装AndroidStudio最新版本,创建新项目选择EmptyActivity模板。在build.gradle模块文件中添加必要依赖:dependencies{implementation'com.sq
- ZAP漏洞扫描系列04:手动导入请求添加站点
宁儿数据安全
#安全测试安全
ZAP漏洞扫描系列04:手动导入请求添加站点通过请求器“曲线救国”添加站点,可按以下步骤操作(本质是手动发请求让ZAP识别站点):GET请求步骤1:在请求器构造目标站点请求在请求器的“请求”编辑框,替换默认内容为:点击“发送(Send)”按钮,ZAP会向http://10.1.1.xx:8081/发请求。GEThttp://10.1.1.xx:8081/HTTP/1.1host:10.1.1.xx
- Ubuntu安装LAMP
L_h1
测试ubuntulinux
在安装vim时遇到了一个问题:E:无法获得锁/var/lib/dpkg/lock-frontend-open(11:资源暂时不可用)E:无法获取dpkg前端锁(/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?解决办法:强制解锁sudorm/var/lib/dpkg/lock-frontendsudorm/var/cache/apt/archives/locksud
- C++-coroutines协程 协程之间相互切换
mrbone11
C++#Coroutinesc++服务器算法协程coroutines
C++协程切换的机制基于如下C++协程标准的规定:await_suspend如果直接返回一个coroutine_handle协程句柄。那么被返回的句柄会立即恢复,即调用返回coroutine_handle的resume()方法查看如下例子:#include#include#include//前向声明structTask;//一个简单的Awaiter,用于触发协程切换structSwitchTo{s
- C++-coroutines协程 将自定义类型转为awaitable(可等待)类型的两种方法
mrbone11
#Coroutinesc++开发语言协程coroutines
文章目录前言重载operatorco_await定义promise_type::await_transform函数前言阅读本篇文章时,已经假定你有对协程的基本概念,如果没有,可以阅读我写的这篇协程入门文章我们已经知道,对于co_await\,expression的返回值必须是awaitable类型,即正确实现了如下三个函数:await_readyawait_suspendawait_resume对
- ROS2编写一个简单的插件
CrimsonEmber
ROS笔记ROS2笔记学习
1.createabaseclasspackageros2pkgcreate--build-typeament_cmake--licenseApache-2.0--dependenciespluginlib--node-namearea_nodepolygon_base编辑ros2_ws/src/polygon_base/include/polygon_base/regular_polygon.h
- streamline 这是个组合词,能猜出大概意思,组织
董八七
title:streamlinedate:2018-08-2117:03:19NO_sents:76NO_references:58streamlinestreamlinedstreamlines组织一些流程(process)AlthoughfixedguidelineswouldsimplifyGWASPAsubstantiallybyprovidinganalytictoolsthatstre
- 解决 Webpack 报错 “No module factory available for dependency type: CssDependency“ 的方法
cmmav33990
webpackrust前端
这个错误表明Webpack在处理CSS依赖时找不到合适的模块工厂,通常发生在配置不完整或依赖冲突的情况下。以下是详细的解决方案:核心解决方案方案1:安装并配置正确的CSS处理器(最推荐)bashnpminstall--save-devcss-loaderstyle-loader#或使用mini-css-extract-plugin替代style-loadernpminstall--save-dev
- datax数据抽取csv到mysql
datax数据抽取执行pythondatax.py-rstreamreader-wstreamwriter命令得到job的json模板{}for...in语句对象中有几个属性,循环体就会执行几次每次执行时,会将对象中的一个属性的名字赋值给变量varobj={name:"孙悟空",age:18,gender:"男",address:"花果山"};for(varninobj){console.log("属性名:"+n);console.log("属性值:
- Java设计模式之<建造者模式>
目录1、建造者模式2、建造者模式结构3、实现4、工厂模式对比5、适用场景差异前言建造者模式是一种创建型设计模式。用于封装复杂对象的构建过程,通过步骤构建产品类。它包括产品类、抽象建造者、具体建造者和指挥者角色。优点在于灵活性、解耦和易扩展,缺点是增加工作量和效率较低。适用场景如构建套餐、字符串动态构建、StreamAPI操作等。1、建造者模式(BuilderPattern)建造者模式定义:封装一个
- Tensorflow-gpu运行时报错Non-OK-status: GpuLaunchKernel
GEM的左耳返
pythontensorflow深度学习python
Tensorflow-gpu运行时报错Non-OK-status:GpuLaunchKernel(FillPhiloxRandomKernelLaunch,num_blocks,block_size,0,d.stream(),gen,data,size,dist)status:Internal:invaliddevicefunctionFatalPythonerror:Aborted说明你安装的C
- 能分析从服务器收到的消息,Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息...
我引起此原因的功能如下:在aspx页面添加按钮JS方法:functiondownPPT(){$("#Btn_DownPPT").click();}…………OnClick="Btn_DownPPT_Click"/>……………………aspx.cs方法protectedvoidBtn_DownPPT_Click(objectsender,EventArgse){…………Response.WriteFil
- electron中IPC 渲染进程与主进程通信方法解析
雅痞yuppie
electron桌面应用开发electronjavascript前端
electron中ipcRenderer.invoke、ipcRenderer.on、ipcRenderer.send、ipcRenderer.sendSync作用与区别IPC渲染进程与主进程通信方法解析ipcRenderer的这几个方法作用不完全相同,它们适用于不同的通信场景,核心区别在于通信方向、是否需要响应以及同步/异步特性。下面详细说明:1.ipcRenderer.send(channel
- 【20年架构师韩艳威整理】CentOS Stream10磁盘管理第4章
韩公子的Linux大集市
Bash入门centoslinux运维
文章目录优化细化1:磁盘识别与扫描(增强版)优化细化2:GPT分区高级操作优化细化3:文件系统优化参数优化细化4:LVM元数据管理优化细化5:LVM高级扩容技巧优化细化6:LVM快照管理优化细化7:LVM精简配置优化细化8:故障处理与恢复优化细化9:性能监控与调优优化细化10:安全与权限管理终极操作对比表:普通分区vsLVM灾难恢复检查清单以下是对CentOSStream10中BashShell磁
- 【20年架构师韩艳威整理】CentOS Stream10磁盘管理第1章
韩公子的Linux大集市
Bash入门centoslinux运维
文章目录一、普通分区管理1.查看磁盘信息2.创建新分区3.格式化分区4.挂载分区5.卸载分区二、LVM分区管理1.LVM基本概念2.创建LVM3.扩展LVM4.缩减LVM(谨慎操作)5.删除LVM三、实用监控命令1.磁盘使用情况2.LVM状态监控3.磁盘健康状态四、实用技巧1.永久设备名(使用UUID挂载)2.创建交换分区3.修复文件系统五、注意事项在CentOSStream10中使用BashSh
- UE5 自动生成插件汇总:提升创作效率的得力助手
阿贾克斯的黎明
游戏开发ue5
目录UE5自动生成插件汇总:提升创作效率的得力助手目录一、地形生成插件1.Polycam2.M4电影级地形工具包3.WorldCreatortoUnrealEngine插件二、场景生成插件1.PrometheanAI2.physicallayout(物理布局)三、动画生成插件1.CasterAI2.blender骨骼绑定模型一键导入UE5场景插件MagicBoneUE5RigCreator四、特效
- Maze Ball: Frame Trap
June_39f9
Inthegame,theplayer'staskistomovethemazeandsendtheballtothedestination.Collectstarsandcompletethelevels.Watchoutobstaclesalongtheway!Comeon!Tel:+1-626-202-3377Email:
[email protected]
- flask 表单 flask-wtf
SkTj
image.pngfromflaskimportFlaskfromflaskimportrender_templatefromflask_bootstrapimportBootstrapfromflask_wtfimportFormfromwtformsimportStringField,SubmitFieldfromwtforms.validatorsimportRequiredclassNam
- 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节点最多