- php 把一个数组分成有n个元素的二维数组的算法
风清扬-独孤九剑
phpphp算法
一、第一种解法0){$columns_map[$position]++;//这个地方格外注意,$position与$columns比较$position=($position<$columns-1)?++$position:0;$array_length--;}foreach($columns_mapas$val){$newarray[]=array_splice($array,0,$val);}
- 学习JavaEE的日子 Day32 线程池
A 北枝
学习JavaEE学习java-eejava线程池
Day32线程池1.引入一个线程完成一项任务所需时间为:创建线程时间-Time1线程中执行任务的时间-Time2销毁线程时间-Time32.为什么需要线程池(重要)线程池技术正是关注如何缩短或调整Time1和Time3的时间,从而提高程序的性能。项目中可以把Time1,T3分别安排在项目的启动和结束的时间段或者一些空闲的时间段线程池不仅调整Time1,Time3产生的时间段,而且它还显著减少了创建
- ruoyi使用笔记
万变不离其宗_8
项目笔记代码参考笔记笔记java前端
1.限流处理@RateLimiter@PostMapping("/createOrder")@ApiOperation("创建充值订单")@RateLimiter(key=CacheConstants.REPEAT_SUBMIT_KEY,time=10,count=1,limitType=LimitType.IP)publicRcreateOrder(@RequestBodyFormform){/
- 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
- Redis分布式锁—SETNX+Lua脚本实现
Sahm5k
javaredis分布式lua
使用redis实现分布式锁,就是利用redis中的setnx,如果key不存在则进行set操作返回1,key已经存在则直接返回0。优点:设置expiretime过期时间,可以避免程序宕机长期持有锁不释放。redis作为一个中间服务,所有微服务都可见,满足分布式的需求。只需redis中原生setnx命令即可构建,实现简单。性能高效,redis数据在内存中。高可用,可以部署redis集群。加锁在red
- Element-UI中el-time-picker时间选择器无法选择
爱健身的小刘同学
bugElementVue系列javascript前端elementui
前言前几天开发时,在做一个时间选择时,遇到了无法选中时间的问题在网络上找了解决方法,特此记录一下解决方法我的代码结构营业时间时间选择不上的原因是因为初始值问题很有可能是最开始赋值为空数组了所以有3个解决方法1.设置为nullbusinessTimeInfo:null2.设置当前时间businessTimeInfo:[newDate(newDate()),newDate(newDate())](默认
- 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}(-
- javascript的数据类型及转换
田小田txt
一、JavaScript数据类型:共有string,number,boolean,object,function五种数据类型;其中Object,Date,Array为对象型;2个不包含任何值的数据类型:null,undefined。二、Typeof查看数据类型:typeof"John"//返回stringtypeof3.14//返回numbertypeofNaN//返回numbertypeoffa
- MongoDB聚合运算符:$indexOfArray
原子星
mongodbmongodb数据库
文章目录语法使用举例$indexOfArray聚合运算符返回指定值在数组中第一次出现的索引位置,数组的索引从0开始。语法{$indexOfArray:[,,,]}$indexOfArray参数说明:,字符串,可以是任何能够解析为数组的表达式,如果表达式解析为null或引用的字段不存在,$indexOfArray返回null。如果表达式不能解析为数组或null且引用的字段都存在,$indexOfAr
- PTE阅读考试比较难的句子该如何突破?
气泡_2e06
PTE阅读是让很多小伙伴们头疼的一项,考完分数总是差2、3分。为什么PTE阅读比较难呢?如何提高自己的阅读分数呢?今天小编来教大家PTE比较难的句子该如何突破。Step1.找出下列句子的主语和谓语1)StudyingEnglishtakestimes.2)Thefirststepisalwaysthehardest.3)ChattingontheInternetbringsmealotoffun.
- 15届蓝桥杯备赛(3)
sad_liu
#sad_liu的刷题记录蓝桥杯职场和发展
文章目录15届蓝桥杯备赛(3)回溯算法组合组合总和III电话号码的字母组合组合总和组合总和II分割回文串子集子集II非递减子序列全排列全排列II贪心算法分发饼干最大子数组和买股票的最佳时机II跳跃游戏15届蓝桥杯备赛(3)提高C++程序的输入输出效率,尤其是在需要大量输入输出操作时。ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie
- AI推介-大语言模型LLMs论文速览(arXiv方向):2024.02.20-2024.02.25
小小帅AIGC
LLMs论文时报人工智能语言模型深度学习LLM大语言模型论文推送
论文目录~1.Zero-shotcross-lingualtransferininstructiontuningoflargelanguagemodel2.ScalingEfficientLLMs3.LLM-DA:DataAugmentationviaLargeLanguageModelsforFew-ShotNamedEntityRecognition4.WhoseLLMisitAnyway?L
- 华为广告打包报错,问题思考
学知识拯救世界
android华为
华为广告打包时报错fata日志不一样能反映出完整的错误日志信息,仅看fata日志具有误导性,有可能指向错误的方向。通过看完整的日志可见,错误的原因为Causedby:java.lang.ClassNotFoundException:com.huawei.hms.ads.base.R$dimenfata日志2024-03-2520:24:27.6743737-3737AndroidRuntimeus
- 代码随想录 day29 第七章 回溯算法part05
厦门奥特曼
代码随想录算法golang剪枝
491.递增子序列46.全排列47.全排列II1.递增子序列关联leetcode491.递增子序列本题和大家刚做过的90.子集II非常像,但又很不一样,很容易掉坑里。思路不能改变原数组顺序不能先排序去重同一层去重树枝上可以有重复元素新元素添加条件大于等于当前次收集数组最右元素value>array[right]题解funcfindSubsequences(nums[]int)[][]int{ret
- byte数组截取
唔66
数据结构
//原始数组byte[]bytes=ImageUtils.toByteArray(fromPaths[0]);//新数组byte[]b1=newbyte[bytes.length-80];//从原始数组80位置开始截取后面所有System.arraycopy(bytes,80,b1,0,bytes.length-80);BufferData2DbufferData2D=newBufferData2
- Net中LINQ的扩展方法ForEach()对多个属性进行赋值
kingwebo'sZone
linqc#
Net中LINQ的扩展方法ForEach()对多个属性进行赋值用大括号属性块的格式可以进行赋值,例子如下:Listadds=newList();adds.ForEach(t=>{t.ID=IdWorkerFactory.GetNextId();t.CreateTime=DateTime.Now;});
- 【牛客】SQL148 筛选昵称规则和试卷规则的作答记录
talle2021
MySQL-刷题MySQL数据库
描述现有用户信息表user_info(uid用户ID,nick_name昵称,achievement成就值,level等级,job职业方向,register_time注册时间):iduidnick_nameachievementleveljobregister_time11001牛客1号19002算法2020-01-0110:00:0021002牛客2号12003算法2020-01-0110:00
- Linux系统定时备份mysql数据库
er_得一
数据库mysqloracle
1、创建shell脚本mysql_db_backup并赋予执行权限#!/bin/bash#备份目录BACKUP=/data/backup/db#当前时间DATETIME=$(date+%Y-%m-%d_%H%M%S)echo$DATETIME#数据库地址HOST=localhost#数据库用户名DB_USER=root#数据库密码DB_PW=pwd@123#备份的数据库名DATABASE=Apol
- 2018-06-20-KCASH推特脸书互联活动
Benny羅
KcashnewairdropeventKcashnewairdropcampaign!100000KCASHarewaitingforyou!!!EventTime:FromUTC10:00AM,June11th,2018toUTC10:00AM,June18th,2018Allyouhavetodo:Step1:FollowKcashofficialTwitter:https://twitte
- [commonjs--resolver] Missing “./jsx-runtime.js“ specifier in “react“ package
清羽_ls
前端&&沉淀javascriptreact.js前端
修复vite构建时错误vite打包,第三方包引用的react版本不一致问题修复(不是最优解)//vite.config.jsimport{defineConfig}from'vite';importreactfrom'@vitejs/plugin-react';importpathfrom'path';exportdefaultdefineConfig({plugins:[react(),//如果
- Mockito.when返回的list长度为0问题解决方法
Fanzongshen
Javalistjava
今天玩Mockito.when遇见一个问题Mockito.when返回的list长度为0;上代码ArrayListchildDepts=newArrayListlist=orgMapper.selectOrgList(queryChild);//发现该代码返回的list长度为0此时应该把我们的模拟代码修改成这样Mockito.when(orgMapper.selectOrgList(Mockito
- CSE101 C++ Introduction to Data Structures and Algorithms
zhuyu0206girl
c++开发语言
CSE101IntroductiontoDataStructuresandAlgorithmsProgrammingAssignment5Inthisprojectyouwillcreateanew,andsomewhatdifferentintegerListADT,thistimeinC++.YouwillusethisListtoperformshufflingoperations,andd
- To make Vegetables and Meat
子越一
TomakeVegetableandMFastbuysomecabbages,somehamsausagesandsometofu.Thencutupthecabbageandthetofu.Afterthatputtheminapotandaddsomeoil.Thencookthemfor5minerandThenaddsomesalt.Finallyputtheminabigplateand
- XML语言的学习记录5- XSD
time
前端项目xml学习前端
XSD(XMLSchemaDefinition),定义XML文档的合法构建模块,分为简易元素(仅包含文本的元素,不会包含任何其他的元素或属性)和复合元素(包含其他元素及/或属性的XML元素)。1.内建的数据类型:xs:stringxs:decimalxs:integerxs:booleanxs:datexs:time2.示例:“xs:”XSD命名控件前缀;xmlns:xs="url"指定XMLSc
- 策略模式-Strategy
老中医167788
捕获.PNGexample:funmain(args:Array){varcashContext:CashContext=CashContext(CashRebate(0.5))varresult=cashContext.getResult(100.00)println(result)cashContext=CashContext(CashReturn(300.00,100.00))result=
- 518. Coin Change II
Recursions
算法leetcode职场和发展
Youaregivenanintegerarraycoinsrepresentingcoinsofdifferentdenominationsandanintegeramountrepresentingatotalamountofmoney.Returnthenumberofcombinationsthatmakeupthatamount.Ifthatamountofmoneycannotbema
- 关闭蓝牙hci日志
开心呆哥
数据库
@echooff::1.获取最开始的文件夹路径set"Start_BT=%~dp0"for/f%%Ain('powershell-Command"Get-Date-Formatyyyy_MMdd_HHmmss"')doset"timestamp=%%A"echoTimestamp:%timestamp%titleSet_Debug_Set_HCI_LOG%timestamp%::打开工程模式adb
- spring cloud gateway k8s优雅启停
luffy_1993
kubernetes容器云原生
通过配置readiness探针和preStophook,实现优雅启动和停止(滚动部署)1.k8s工作负载配置readinessProbe:httpGet:path:/datetimeport:8080scheme:HTTPinitialDelaySeconds:30timeoutSeconds:1periodSeconds:30successThreshold:1failureThreshold:
- moba客户端开发面经
Unity游戏开发
面试游戏开发unity
1、Lua:元表是什么,怎么实现对象继承2、OPP是什么3、mvc结构4、C#:list和array区别和使用场景5、项目:(1)ui框架类设计,ui层级管理怎么做,对象初始化内存占用这样做高,资源是怎么加载的(2)背包数据室怎么加载的,mvc怎么使用的,怎么性能优化的(3)ui的一些优化方式,动静分离,不使用透明,排序减少batch6、帧同步和状态同步介绍:(1)用什么协议,这俩什么区别(2)网
- 流畅的Python(十九)-动态属性和特性
maplea2012
Pythonpython开发语言
一、核心要义在Python中,数据的属性和处理数据的方法,统称属性。方法,只是可调用的属性。除了这两者之外,我们还可以创建特性(property),在不改变类接口的前提下,使用存取方法(即读值方法和设值方法)修改数据属性。二、代码示例0、相关知识点#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2024/3/1320:56#@Author:Maple#@
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIlinuxPHPandroid
╔-----------------------------------╗┆
- zookeeper admin 笔记
braveCS
zookeeper
Required Software
1) JDK>=1.6
2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines
3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘
数据和日志目录
1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日
- Spring配置多个连接池
easterfly
spring
项目中需要同时连接多个数据库的时候,如何才能在需要用到哪个数据库就连接哪个数据库呢?
Spring中有关于dataSource的配置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
&nb
- Mysql
171815164
mysql
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作
- CommonDAO(公共/基础DAO)
g21121
DAO
好久没有更新博客了,最近一段时间工作比较忙,所以请见谅,无论你是爱看呢还是爱看呢还是爱看呢,总之或许对你有些帮助。
DAO(Data Access Object)是一个数据访问(顾名思义就是与数据库打交道)接口,DAO一般在业
- 直言有讳
永夜-极光
感悟随笔
1.转载地址:http://blog.csdn.net/jasonblog/article/details/10813313
精华:
“直言有讳”是阿里巴巴提倡的一种观念,而我在此之前并没有很深刻的认识。为什么呢?就好比是读书时候做阅读理解,我喜欢我自己的解读,并不喜欢老师给的意思。在这里也是。我自己坚持的原则是互相尊重,我觉得阿里巴巴很多价值观其实是基本的做人
- 安装CentOS 7 和Win 7后,Win7 引导丢失
随便小屋
centos
一般安装双系统的顺序是先装Win7,然后在安装CentOS,这样CentOS可以引导WIN 7启动。但安装CentOS7后,却找不到Win7 的引导,稍微修改一点东西即可。
一、首先具有root 的权限。
即进入Terminal后输入命令su,然后输入密码即可
二、利用vim编辑器打开/boot/grub2/grub.cfg文件进行修改
v
- Oracle备份与恢复案例
aijuans
oracle
Oracle备份与恢复案例
一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与
- JavaEE开源快速开发平台G4Studio v5.0发布
無為子
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V5.0版本已经正式发布。
访问G4Studio网站
http://www.g4it.org
2013-04-06 发布G4Studio_V5.0版本
功能新增
(1). 新增了调用Oracle存储过程返回游标,并将游标映射为Java List集合对象的标
- Oracle显示根据高考分数模拟录取
百合不是茶
PL/SQL编程oracle例子模拟高考录取学习交流
题目要求:
1,创建student表和result表
2,pl/sql对学生的成绩数据进行处理
3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选
1,创建student表,和result表
学生信息表;
create table student(
student_id number primary key,--学生id
- 优秀的领导与差劲的领导
bijian1013
领导管理团队
责任
优秀的领导:优秀的领导总是对他所负责的项目担负起责任。如果项目不幸失败了,那么他知道该受责备的人是他自己,并且敢于承认错误。
差劲的领导:差劲的领导觉得这不是他的问题,因此他会想方设法证明是他的团队不行,或是将责任归咎于团队中他不喜欢的那几个成员身上。
努力工作
优秀的领导:团队领导应该是团队成员的榜样。至少,他应该与团队中的其他成员一样努力工作。这仅仅因为他
- js函数在浏览器下的兼容
Bill_chen
jquery浏览器IEDWRext
做前端开发的工程师,少不了要用FF进行测试,纯js函数在不同浏览器下,名称也可能不同。对于IE6和FF,取得下一结点的函数就不尽相同:
IE6:node.nextSibling,对于FF是不能识别的;
FF:node.nextElementSibling,对于IE是不能识别的;
兼容解决方式:var Div = node.nextSibl
- 【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)
bit1129
垃圾回收
吞吐量与用户线程暂停时间
衡量垃圾回收算法优劣的指标有两个:
吞吐量越高,则算法越好
暂停时间越短,则算法越好
首先说明吞吐量和暂停时间的含义。
垃圾回收时,JVM会启动几个特定的GC线程来完成垃圾回收的任务,这些GC线程与应用的用户线程产生竞争关系,共同竞争处理器资源以及CPU的执行时间。GC线程不会对用户带来的任何价值,因此,好的GC应该占
- J2EE监听器和过滤器基础
白糖_
J2EE
Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文。
监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听。
ServletContex监听器
ServletContex又叫application
- 博弈AngularJS讲义(16) - 提供者
boyitech
jsAngularJSapiAngularProvider
Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。
那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Fac
- java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。
bylijinnan
java
public class CommonSubSequence {
/**
* 题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。
* 写一个版本算法复杂度O(N^2)和一个O(N) 。
*
* O(N^2):对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。
* O(
- sqlserver 2000 无法验证产品密钥
Chen.H
sqlwindowsSQL ServerMicrosoft
在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ
- [新概念武器]气象战争
comsci
气象战争的发动者必须是拥有发射深空航天器能力的国家或者组织....
原因如下:
地球上的气候变化和大气层中的云层涡旋场有密切的关系,而维持一个在大气层某个层次
- oracle 中 rollup、cube、grouping 使用详解
daizj
oraclegroupingrollupcube
oracle 中 rollup、cube、grouping 使用详解 -- 使用oracle 样例表演示 转自namesliu
-- 使用oracle 的样列库,演示 rollup, cube, grouping 的用法与使用场景
--- ROLLUP , 为了理解分组的成员数量,我增加了 分组的计数 COUNT(SAL)
- 技术资料汇总分享
Dead_knight
技术资料汇总 分享
本人汇总的技术资料,分享出来,希望对大家有用。
http://pan.baidu.com/s/1jGr56uE
资料主要包含:
Workflow->工作流相关理论、框架(OSWorkflow、JBPM、Activiti、fireflow...)
Security->java安全相关资料(SSL、SSO、SpringSecurity、Shiro、JAAS...)
Ser
- 初一下学期难记忆单词背诵第一课
dcj3sjt126com
englishword
could 能够
minute 分钟
Tuesday 星期二
February 二月
eighteenth 第十八
listen 听
careful 小心的,仔细的
short 短的
heavy 重的
empty 空的
certainly 当然
carry 携带;搬运
tape 磁带
basket 蓝子
bottle 瓶
juice 汁,果汁
head 头;头部
- 截取视图的图片, 然后分享出去
dcj3sjt126com
OSObjective-C
OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast.
I implemented a category method on UIView to get the vi
- MySql重置密码
fanxiaolong
MySql重置密码
方法一:
在my.ini的[mysqld]字段加入:
skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库
然后进入mysql
mysql>use mysql;
mysql>更新 user set password=password('新密码') WHERE User='root';
mysq
- Ehcache(03)——Ehcache中储存缓存的方式
234390216
ehcacheMemoryStoreDiskStore存储驱除策略
Ehcache中储存缓存的方式
目录
1 堆内存(MemoryStore)
1.1 指定可用内存
1.2 驱除策略
1.3 元素过期
2 &nbs
- spring mvc中的@propertysource
jackyrong
spring mvc
在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了:
@PropertySource 在spring 3.1中开始引入
比如有配置文件
config.properties
mongodb.url=1.2.3.4
mongodb.db=hello
则代码中
@PropertySource(&
- 重学单例模式
lanqiu17
单例Singleton模式
最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。
第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。
单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式
静态内部类方式:
package test.pattern.singleton.statics;
publ
- .NET开源核心运行时,且行且珍惜
netcome
java.net开源
背景
2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心
- 使用oscahe缓存技术减少与数据库的频繁交互
Everyday都不同
Web高并发oscahe缓存
此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。
缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——
- Spring+Mybatis 手动控制事务
toknowme
mybatis
@Override
public boolean testDelete(String jobCode) throws Exception {
boolean flag = false;
&nbs
- 菜鸟级的android程序员面试时候需要掌握的知识点
xp9802
android
熟悉Android开发架构和API调用
掌握APP适应不同型号手机屏幕开发技巧
熟悉Android下的数据存储
熟练Android Debug Bridge Tool
熟练Eclipse/ADT及相关工具
熟悉Android框架原理及Activity生命周期
熟练进行Android UI布局
熟练使用SQLite数据库;
熟悉Android下网络通信机制,S