五、Netty实战技巧:

(一) 多线程编程实践:

1. Netty中使用多线程的技巧:

  • 创建两个NioEventLoopGroup,用于逻辑隔离NIO Acceptor和NIO IO线程。

  • 尽量不要在ChannelHandler中启动用户线程(解码后用于将POJO消息派发到后端业务线程的除外)。

  • 解码要放在NIO线程,在调用解码的Handler中进行,不要切换到用户线程中,完成消息解码。

  • 如果业务逻辑操作非常简单,没有复杂的业务逻辑计算,没有会导致线程被阻塞的磁盘操作、数据库操作、网路操作等,可以直接在NIO线程上完成业务逻辑编排,不需要切换到用户线程。

  • 如果业务逻辑处理复杂,不要在NIO线程上完成,建议将解码后的POJO消息封装成Task,派发到业务线程池中,由业务线程执行,以保证NIO线程尽快被释放,处理其他的I/O操作。

2. Netty框架对多线程的应用:

2.1 对共享的可变数据进行正确的同步:

使用synchronized关键字。

2.2 正确使用锁:

很多刚接触多线程编程的开发者,虽然意识到并发访问可变变量需要加锁,但是对锁定范围,加锁时机和所得协调缺乏认识,往往会导致出现一些问题。

2.3 正确使用volatile:

正确使用volatile需要理解Java的内存模型和多线程编程的基础知识。

根据经验总结,volatile最适合在一个线程写,其他线程读的场景。

2.4 CAS指令与原子类:

互斥同步最主要的问题就是进行线程阻塞和唤醒所带来的性能的额外损耗,因此这种同步被称为阻塞同步,它属于悲观的并发策略,我们称之为悲观锁。

目前,在Java中应用最广泛的非阻塞同步是CAS。

2.5 线程安全类的应用:

2.6 读写锁的应用:

2.7 线程安全性文档说明:

Netty已经对一些重要的类进行线程安全的详细说明。

2.8 不要依赖线程优先级:

(二) 优化建议:

1. 发送队列容量设置上限控制:

Netty的NIO消息发送队列ChannelOutboundBuffer并没有容量上限控制,它会随着消息的积压自动扩展,直到达到0x7ffffff。

如果网络对方处理速度比较慢,导致TCP滑窗长时间为0;或者消息发送方发送速度过快,或者一次批量发送消息量过大,都可能会导致ChannelOutboundBuffer的内存膨胀,这可能会导致系统的内存溢出。

建议优化方式如下:在启动客户端或者服务端的时候,通过启动项的ChannelOption设置发送队列的长度,或者通过 -D 启动参数配置该长度。

2. 回推发送失败的消息:

当网络发生故障时,Netty会关闭链路,然后循环释放待未发送的消息,最后通知监听Listener。这样的处理策略值得商榷,对于大多数用户而言,并不关心底层的网络IO异常,他们希望链路恢复之后可以自动将尚未发送的消息重新发送给对方,而不是简单的销毁。

Netty销毁尚未发送的消息,用户可以通过监听器来得到消息发送异常通知,但是却无法获取原始待发送的消息如果要实现重发,需要自己缓存消息,如果发送成功,自己删除,如果发送失败,重新发送。这对于大多数用户而言,非常麻烦,用户在开发业务代码的同时,还需要考虑网络IO层的异常并为之做特殊的业务逻辑处理。

下面我们看下Mina(另一个Java网络框架)的实现,当发生链路异常之后,Mina会将尚未发送的整包消息队列封装到异常对象中,然后推送给用户Handler,由用户来决定后续的处理策略。相比于Netty的“野蛮”销毁策略,Mina的策略更灵活和合理,由用户自己决定发送失败消息的后续处理策略。

大多数场景下,业务用户会使用RPC框架,他们通常不需要直接针对Netty编程,如果Netty提供了发送失败消息的回推功能,RPC框架就可以进行封装,提供不同的策略给业务用户使用,例如:

  • 缓存重发策略:当链路发生异常之后,尚未发送成功的消息自动缓存,待链路恢复正常之后重发失败的消息。

  • 失败删除策略:当链路发生异常之后,尚未发送成功的消息自动销毁,它可能是非重要消息,例如日志消息,也可能是由业务直接监听异常并做特殊处理。

3.异常处理要谨慎:

尽管Reactor线程主要处理IO操作,发生的异常通常是IO异常,但是,实际上在一些特殊场景下会发生非IO异常,如果仅仅捕获IO异常可能就会导致Reactor线程跑飞。为了防止发生这种意外,在循环体内一定要捕获Throwable,而不是IO异常或者Exception。

捕获Throwable之后,即便发生了意外未知对异常,线程也不会跑飞,它休眠1S,防止死循环导致的异常绕接,然后继续恢复执行。这样处理的核心理念就是:

  • 某个消息的异常不应该导致整条链路不可用。

  • 某条链路不可用不应该导致其他链路不可用。

  • 某个进程不可用不应该导致其他集群节点不可用。

六、Netty与TCP:

1. Netty解决TCP粘包与拆包问题:

LengthFieldBasedFrameDecoder与LengthFieldPrepender:

  • Netty提供了LengthFieldBasedFrameDecoder/LengthFieldPrepender,自动屏蔽TCP底层的拆包和粘包问题,只需要传入正确的参数,即可轻松解决“读半包“问题。

  • 发送方使用LengthFieldPrepender给实际内容Content进行编码添加报文头Length字段,接受方使用LengthFieldBasedFrameDecoder进行解码。

七、重点问题:

1. Netty如果保证ChannelPipeline的线程安全?

  • Netty使用synchronized关键字,保证同步块内的所有操作的原子性。

  • 在加入链表之前,Netty还会检查该Handler是否已经被添加过及其名字是否有重复,如果该Handler不是共享而且被添加,会过抛出异常,如果名字重复,也会抛出异常。

2. 如果保证ChannelHandler的线程安全?(2点)

  • 保证每个Channel尽量都拥有自己的Handler,而不是Handler在多个Channel之间共享

  • 不推荐使用下面的代码写法,如果想这么写,需要在ServerHandler用注解@ChannelHandler.Sharable明确表明这是一个共享的handler,而且是线程安全的。

ServerBootstrap b = new ServerBootstrap();ServerHandler serverHandler = new ServerHandler();b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) { ch.pipeline().addLast(serverHandler); } });

  • 推荐这种写法:ch.pipeline().addLast(new ServerHandler())

  • 尽量不使用共享资源,如果使用了共享资源,在操作时需要对共享资源进行同步,如加锁

3. Nett的对象池:(重要)

为什么用对象池:

为了避免过多的创建对象和频繁的GC,才使用了对象池。Netty在创建ByteBuf时,先从对象池获取一个对象,如果没有找到可用的对象,才会去创建一个新的ByteBuf对象。

为什么说Recycler是"轻量级"的对象池?

  • 功能简单:对象池只提供了创建和回收的基本接口,没有复杂的诸如有效性检测、空闲回收和拒绝策略等一些复杂功能。

  • 逻辑简单:实现逻辑清晰简单,没有复杂的算法逻辑。

对象池的使用原理:

Netty的缓冲区实现类,通过聚合的方式引入Recycler类。在申请缓冲区时,先从Recycler中获取,如果没有再创建。在缓冲区使用完毕后,也会被回收到Recycler中,方便下次使用时,直接从Recycler中获取。

Recycler类的简单介绍:

它是一个抽象类,以下是Netty4中实现结构。但是在Netty5中进行了简化,没有了WeakOrderQueue(不去存储其他线程回收到本线程的Stack),FastThreadLocal 也变成了ThreadLocal。

Recycler的核心方法:

  • get():获取一个对象;

  • recycle(T, Handle):回收一个对象,T为对象泛型;

  • newObject(Handle):当没有可用对象时,创建对象;

Recycler的核心属性:

  • DefaultHandle:对象的包装类,在Recycler中缓存的对象都会包装成DefaultHandle类。

  • Stack: 存储本线程的回收对象 。

  • 对象的获取和回收对应Stack的pop(获取对象时,从Stack中pop出1个DefaultHandle)和push(回收对象时,将对象包装成DefaultHandle push到Stack中)。

  • Stack会与线程绑定(每个用到Recycler的线程都会拥有1个Stack),在该线程中获取对象,是从该线程的Stack中pop出的一个可用对象。

  • WeakOrderQueue存储其它线程回收到本线程stack的对象

  • 当某个线程从Stack中获取不到对象时,会从WeakOrderQueue中获取对象。

  • 每个线程的Stack拥有1个WeakOrderQueue链表,链表中每个节点对应1个其它线程的WeakOrderQueue,其它线程回收到该Stack的回收对象,就存储在这个WeakOrderQueue里。

  • Link:WeakOrderQueue中包含1个Link链表,回收对象存储在链表某个Link节点里,当Link节点存储的回收对象时,会新建1个Link放在Link链表尾。

Recycler获取和回收流程:

获取过程:

  • 使用 FastThreadLocal.get() 从线程对象中获取 InternalThreadLocalMap,然后从InternalThreadLocalMap获取Stack对象,从Stack中pop一个DefaultHandler对象,如果Stack中有值,直接从栈中弹出一个元素。

  • 如果Stack中没有值,那么从WeakOrderQueue获取,遍历WeakOrderQueue的Link,将Link中的元素迁移到Stack。

  • 如果发现用完了的Link,断开链接,在Head中记录释放了多少空间(Link的容量默认是16)。

  • 如果在遍历WeakOrderQueue的过程中,发现其对应的线程已经被垃圾回收了,那么将这个WeakOrderQueue中的所有元素移到Stack中。

  • Tips:FastThreadLocalThread对象是直接通过一个属性引用InternalThreadLocalMap,而从ThreadLocal中查找性能较差。

回收过程

  • 如果当前DefaultHandler对应的Stack的线程对象就是当前线程对象,直接存到Stack的数组中即可。

  • , WeakOrderQueue>> DELAYED_RECYCLED属性中,这个属性的容量默认是CPU个数乘以2。调用WeakOrderQueue的add方法,检查最后一个Link容量是否已满,如果没有满,将值存入,如果满了,检查是否超过Stack允许的WeakOrderQueue的容量(默认是2048),没有超过就创建一个新的Link存入。

  • Tips:这样可以有效提高并发量,除了构建WeakOrderQueue需要线程安全之外,其他的操作就不需要锁啦。

Recycler的无锁化的思考:

如何实现无锁化?

每个线程对应一个对象池,只有该线程,可以获取对象和回收对象。即实现池的无锁化。

技术点:FastThreadLocal、Recycler中的Stack对象。

如何在其他线程中无锁化回收?

例如线程A分配了对象,经过一系列传递,在线程B中调用回收对象,如何解决?

首先,在当前线程的Stack对象中,创建一个WeakOrderQueue,将需要回收的对象添加到该队列中。然后,再将回收对象挪移到自身的对象池中,实现复用。

技术点:队列的存取不会冲突,可以无锁化。

何时将对象挪到自己的池中来?

当自身的对象池用光的时候,才将垃圾箱中的对象挪移过来。

回收方式 -> 计数回收:

通过某种自增计数handleRecycleCount,达到某个设定阈值时,将回收掉。Netty 值默认设置为8,池内的对象只能用8次,就回收掉。

4. Netty的内存池:(重要)

内存分配思想:

  • 现有内存最大化利用,减少内存碎片

  • Netty底层的内存分配是采用 jemalloc 【G 马洛克】算法思想。它主要通过Arena和Thread Cache(核心思想)技术,在多线程场景下也有出色的内存分配效率。

  • Arena:分而治之思想的体现,将任务派发给多个人,每个人独立管理,互不干涉,即避免线程竞争。

  • Thread Cache机制:每个线程有自己的内存缓存器,内存分配在这个线程内完成,就不需要和其他线程竞争。

内存规格:

  • 内存大小划分(四类,从小到大):Tiny [0B,512B)、Small [512B,8K) 、Normal [8K,16M]、 Huge (16M, 无限大)

  • Tips:使用内存时,会上向取整,比如500B,向上取整512B,它就是Samll类型。

  • Normal类型:Netty默认使用,Normal类型向操作系统申请的内存大小为16MB。

  • Huge类型(它属于大型缓存):内存大小大于16MB,不做缓存、不做池化,直接以 Unpool 的形式分配内存,用完后回收。

内存池结构:

1. PoolArena:

  • 概念:PoolArena是指向系统或JVM堆申请一块内存区域,它与Memory Arena概念的类似。

  • 类分:HeapPoolArena和DirectPoolArena。

  • 特点:Netty会固定分配多个Arena,Arena默认数量与CPU 核数有关。创建多个Arena 用来缓解资源竞争的问题,从而提高内存分配效率。

  • 数据结构

  • 包含两个PoolSubpage类型的数组(分别存放Tiny和Small 类型的内存块)和六个PoolChunkList(分别存储不同利用率的Chunk),构成一个双向循环链表。

  • PoolArena对应实现了PoolSubPage和PoolChunk中的内存分配,其中PoolSubpage用于分配小于8K的内存,PoolChunkList用于分配大于8K的内存。

  • PoolSubpage类型的数组有两个规格:tinySubpagePools和smallSubpagePools。对于Tiny规格,内存单位最小为16B,按16B依次递增,共31种情况,再加上数据0位置代表0B,一种32种情况;对于Small规格,内存单位最小为512B,共分为 512B、1024B、2048B、4096B四种情况,分别对应两个数组的长度大小。

2. PoolChunkList:

  • 概念:PoolChunkList负责管理多个PoolChunk的生命周期,同一个ChunkList中存放内存使用率相近的Chunk,Chunk以双向链表的形式连接在一起。

  • PoolArena初始化了6个PoolChunkList,分别为 qInit、q000、q025、q050、q075、q100,它代表不同的内存使用率:

  • qInit:内存使用率为0 ~ 25% 的Chunk;q000:内存使用率为1 ~ 50% 的Chunk;

  • q025:内存使用率为25% ~ 75% 的Chunk;q050:内存使用率为50% ~ 100% 的Chunk;

  • q075:内存使用率为75% ~ 100% 的Chunk;q100:内存使用率为100% 的Chunk。

  • Tips:每个PoolChunkList上下线有重叠,避免因为内存使用率在临界值,一直移动,造成性能损耗。

3. PoolChunk:

  • Netty内存的分配和回收都是基于PoolChunk完成的,PoolChunk是真正存储内存数据的地方,每个PoolChunk的默认大小为16M。

  • PoolChunk可以理解为Page的集合,一个PoolChunk分配成2048个Page,最终形成一颗满二叉树。

  • 二叉树中所有子节点的内存,都属于其父节点管理。

  • 每个节点都记录了自己在整个Memory Arean中的偏移地址,当一个节点代表的内存区域被分配出去之后,这个节点就会标记为已分配。

4. PoolPage:

  • PoolPage是 PoolChunk用于管理内存的基本单位。

  • 每个Page默认大小是8K。

5. PoolSubPage:

  • 在小内存分配的场景下(分配的内存大小小于一个Page,即内存小于8K),会使用PoolSubpage进行管理。

PoolSubpage是如何记录内存块的使用状态的呢?

  • PoolSubpage通过位图bitmap记录子内存是否已经被使用,bit 的取值为0或者1。如下图所示:

PoolSubpage和PoolArena之间是如何联系起来的?

  • PoolArena在创建时,会初始tinySubpagePools和smallSubpagePools两个PoolSubpage类型的数组,数组的大小分别为 32 和 4。

  • 假如现在需要分配20B的内存,会向上取整为32B,从满二叉树的第11层找到一个PoolSubpage节点,并把它等分为 8KB/32B = 256个小内存块,然后找到这个PoolSubpage节点对应的PoolArena,将PoolSubpage节点与tinySubpagePools[1] 对应的head节点连接成双向链表,形成下图所示的结构:

6. PoolThreadCache & MemoryRegionCache

  • PoolThreadCache的概念:PoolThreadCache是本地线程缓存的意思。当内存释放时,Netty并没有将缓存归还给PoolChunk,而是使用 PoolThreadCache缓存起来,当下次有同样规格的内存分配时,直接从PoolThreadCache取出使用即可。

  • PoolThreadCache的缓存数据类型:Tiny、Small、Normal 三种类型的数据,而且根据堆内和堆外内存的类型进行了区分。

  • PoolThreadCache的重要数据结构:MemoryRegionCache。

  • MemoryRegionCache 有三个重要的属性,分别为 queue,sizeClass 和 size,下图是不同内存规格所对应的 MemoryRegionCache属性取值范围:

  • MemoryRegionCache 实际就是一个队列,当内存释放时,将内存块加入队列当中,下次再分配同样规格的内存时,直接从队列中取出空闲的内存块。

  • PoolThreadCache将不同规格大小的内存,使用单独的MemoryRegionCache 维护,如下图所示,图中的每个节点都对应一个 MemoryRegionCache,例如Tiny场景下对应的32种内存规格会使用32个MemoryRegionCache维护,所以PoolThreadCache源码中Tiny、Small、Normal 类型的MemoryRegionCache数组长度分别为 32、4、3。

内存分配原理:

Netty中负责线程分配的组件有两个:PoolArena和PoolThreadCache。PoolArena是多个线程共享的,每个线程会固定绑定一个 PoolArena,PoolThreadCache是每个线程私有的缓存空间,如下图所示:

Netty根据不同内存规格采用不同的分配策略:

  • 分配内存大于8K时,PoolChunk中采用的Page级别的内存分配策略。

  • 分配内存小于8K时,由PoolSubpage负责管理的内存分配策略。

  • 分配内存小于8K 时,为了提高内存分配效率,由PoolThreadCache本地线程缓存提供的内存分配。

1. Page级别的内存分配:

每个PoolChunk默认为16M,PoolChunk是通过伙伴算法管理多个Page,每个PoolChunk被划分为2048个Page,最终通过一颗满二叉树实现。伙伴算法尽可能保证了分配内存地址的连续性,可以有效地降低内存碎片。

具体分配见文章

2. Subpage级别的内存分配:

在分配小于8K的内存时,PoolChunk不在分配单独的Page,而是将Page划分为更小的内存块,由PoolSubpage进行管理。e 已经没有可分配的内存块,此时需要从 PoolArena 中 tinySubpagePools[1] 的双向链表中删除。

具体分配见文章

3. PoolThreadCache的内存分配:

PoolArena分配的内存被释放时,Netty并没有将缓存归还给PoolChunk,而是使用PoolThreadCache缓存起来,当下次有同样规格的内存分配时,直接从 PoolThreadCache 取出使用即可。

分配流程

  • 分配Tiny、Small、Normal类型的内存时,优先尝试从PoolThreadCache 中进行分配:

  • 1. 对申请的内存大小做向上取整,例如,20B的内存大小会取整为32B。

  • 2. 当申请的内存大小小于8K时,分为Tiny和Small 两种情况,分别都会优先尝试从PoolThreadCache 分配内存,如果 PoolThreadCache分配失败,才会走PoolArena的分配流程。

  • 3. 当申请的内存大小大于8K,但是小于Chunk的默认大小16M,属于Normal 的内存分配,也会优先尝试PoolThreadCache 分配内存,如果PoolThreadCache 分配失败,才会走PoolArena的分配流程。

  • 当申请的内存大小大于Chunk的16M,则不会经过PoolThreadCache,直接进行分配。

内存回收原理:

当用户线程释放内存时,会将内存块缓存到本地线程的PoolThreadCache缓存中,这样在下次分配内存时会提高分配效率。

但是当内存块被用完一次后,再没有分配需求,Netty是如何实现内存释放的?Netty记录了allocate()的执行次数,默认每执行 8192 次,就会触发PoolThreadCache调用一次 trim() 进行内存整理,会对PoolThreadCache中维护的六个MemoryRegionCache数组分别进行整理。

相关文章

  1. 俄语语音语调的7个调型,柯桥俄语培训

    在俄语语调的学习和教授过程中&#xff0c;通常将一个句子分为三个部分&#xff1a;调心前部、调心、调心后部。在发音时&#xff0c;各调型内词与词之间的界限消失&#xff0c;各词的首尾音节紧密衔接成为一个整体&#xff0c;而句子中有一个重读音节在语调上和意义上作为该句…...

    2023/5/22 19:59:27
  2. 一位全加器及四位全加器————FPGA

    文章目录前言一、一位全加器1、一位全加器的原理图设计2、一位全加器的Verilog编程3、上板效果二、四位全加器1、四位全加器的原理图设计2、四位全加器的Verilog 编程三、总结四、参考资料前言 环境&#xff1a; 1、Quartus18.0 2、vscode 3、基于Intel DE2-115的开发板 一、一…...

    2023/6/3 3:51:11
  3. 在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器

    文章目录1、Docker中安装Tomcat1.1 搜索tomcat1.2 拉取1.3 查看拉取的镜像2、目录挂载2.1 目录挂载准备2.2 创建容器同时进行挂载2.3 进入容器2.4 测试1、Docker中安装Tomcat 1.1 搜索tomcat docker search tomcat1.2 拉取 docker pull tomcat //我这里拉取最新的。也可以拉…...

    2023/3/31 21:25:16
  4. 【LeetCode】二叉树的前序遍历(递归,迭代,Morris 遍历)

    目录 题目要求&#xff1a;给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 方法一&#xff1a;递归 方法二&#xff1a;迭代 思路分析&#xff1a; 复杂度分析 代码展示&#xff1a; 方法三&#xff1a;迭代进阶 思路分析&#xff1a; 代码展示&…...

    2023/4/17 18:09:13
  5. CentOS镜像,RPM,epel位置

    1.镜像位置 CentOS官网 1.1 点击下载&#xff1a; 1.2 获取位置 所有获取镜像的列表&#xff1a; 比如获取清华iso镜像&#xff1a; 2.RPM位置 点击下方链接 所有获取镜像的列表&#xff1a; 比如我获取的是清华开源&#xff0c;从此根目录找对应版本的RPM&#xff0c; ht…...

    2023/5/28 23:58:36
  6. 用户空间和内核空间,系统调用

    内核空间与用户空间 用户空间和内核空间是操作系统中的两个重要概念。 用户空间是指操作系统为每个进程分配的一块内存空间&#xff0c;用于存储进程的代码、数据和堆栈等信息。在用户空间中运行的程序只能访问自己的内存空间&#xff0c;不能直接访问操作系统的内存空间或硬…...

    2023/6/1 14:42:13
  7. 【Flutter·学习实践·配置】认识配置文件pubspec.yaml

    目录 简介 pubspec.yaml 添加Pub仓库 其他依赖方式 依赖本地包 依赖Git 简介 简单说就是包管理工具&#xff0c;类似于Android 提供了 Gradle 来管理依赖&#xff0c;iOS 用 Cocoapods 或 Carthage 来管理依赖&#xff0c;Node 中通过 npm 等。 让我们能很好的管理第三…...

    2023/6/7 0:03:37
  8. day 15 面相对象

    day 15 面相对象 编程思维 根据面对问题不同人呈现出来的思维模式不同&#xff0c;可以将编程思维分为三种&#xff1a; 面相过程编程(穷人思想) — 遇到问题马上想到解决这个问题的具体逻辑和步骤 函数式编程(小资思想) — 遇到问题马上想到有没有一个已经存在的函数可以解…...

    2023/4/19 3:12:59
  9. 免费分享一个springboot+vue的办公系统

    springbootvue的OA系统项目介绍项目部署项目特点项目展示项目介绍 这是一个采用前后端分离开发的项目&#xff0c;前端采用 Vue 开发、后端采用 SpringBoot Mybatis 开发。 很适合java初学者练手和学习。 前端技术&#xff1a;Vue3.2 Vue-Router Pinia Ant Design Vue 3.X…...

    2023/4/21 22:02:53
  10. UE4 动画蓝图的优化

    General Tips当您开始考虑动画使用的性能时&#xff0c;以下是执行优化时可能需要遵循的一些准则。确保满足并行更新的条件在UAnimInstance:&#xff1a;NeedsImmediateUpdate中&#xff0c;您可以看到必须满足的所有条件&#xff0c;以避免在游戏线程上运行动画的更新阶段。如…...

    2023/5/18 12:17:42
  11. 深入理解计算机系统(3)_程序的机器级表示

    一起来理解计算机系统系列文章目录 1. 大致简介 程序结构篇 1. 信息表示与处理 2. 程序的机器级表示 程序运行篇 程序交互篇 文章目录一起来理解计算机系统系列文章目录一、前言二、本文参考资料三、正文部分3.1 目的 / 目标3.2 程序编码3.2.1 机器级代码3.2.2 代码示例3.2.3…...

    2023/5/30 13:59:32
  12. 刷题打卡day39第九章 动态规划: 62.不同路径 、 63. 不同路径 II

    62.不同路径 开始进入二维dp数组的部分。 需要注意的是&#xff1a;二维vectpr数组的定义方式&#xff0c;及初始化&#xff1a; vector<vector<int>> dp(m, vector<int>(n, 0)); 定义一个m行n列的二维数组&#xff0c;初始化为0. class Solution { pub…...

    2023/6/5 21:00:38
  13. 怎么选择项目协作工具,最详细的指南来了!

    现代企业要在当前的气候中生存&#xff0c;就必须适应。COVID-19疫情对传统的工作方式提出了质疑&#xff0c;并强调了远程和混合工作模式的重要性。如今&#xff0c;企业必须采用敏捷的策略&#xff0c;以便更轻松地应对挑战&#xff0c;并为员工提供更大程度的灵活性。敏捷状…...

    2023/4/23 7:25:17
  14. 最新版高可用hadoop集群搭建及问题排查

    最新版高可用hadoop集群搭建及问题排查 注释 注&#xff1a;本文只针对高可用hadoop集群部署做讲解&#xff0c;如需系统学习hadoop&#xff0c;可参考gitee文档&#xff1a;大数据入门指南 集群架构 集群搭建 前置步骤 所有节点执行 配置hosts&#xff1a; vim /etc/hos…...

    2023/5/22 19:59:27
  15. Linux中wget、yum与apt-get用法及区别

    Linux中wget、yum与apt-get用法及区别wget、yum与apt-get区别一、Centos包管理工具 yum1.1 yum源配置1.2 yum命令的基本使用二、Ubuntu包管理工具 apt-get2.1 apt-get基本使用三、下载工具wgetwget、yum与apt-get区别 yum与apt-get都是包管理工具&#xff0c;就像python中的pip…...

    2023/6/1 22:59:27
  16. Visual SVN Server的下载和使用

    摘要 代码管理和文件下载管理服务器Visual SVN Server使用相比如git操作更方便&#xff0c;不用指令就可以完成&#xff0c;其次能够上传大文件十分方便 一 安装Visual SVN Server 下载msi文件 进入Visual SVN Server官网下载64bit文件&#xff0c;官网如下&#xff1a; ht…...

    2023/6/3 11:28:04
  17. CPP 多重继承

    C中的多重继承是指一个类可以同时从多个父类继承成员。多重继承在C中是一种重要的特性&#xff0c;它可以使得程序员更加灵活地设计和组织类的继承关系&#xff0c;使得代码的复用性和可维护性得到提高。 C中的多重继承可以通过在类定义中使用逗号分隔多个基类来实现。例如&am…...

    2023/5/9 14:15:05
  18. 物业项目经理需要考什么证书 怎么报名

    物业项目经理需要考物业项目经理资格证书&#xff0c;这个证书属于物业项目经理必须持有的证书&#xff0c;是项目管理和对外招投标必备证书&#xff0c;同时也是项目管理人员任职资格证。 1物业项目经理证书怎么报考 1.确定物业项目经理的报考条件&#xff0c;年龄是硬性要求&…...

    2023/5/20 19:16:25
  19. Lesson9.网络基础1

    网络协议初识 所谓的协议就是人们为了通信的一种约定 操作系统要进行协议管理,必然会先描述,再组织协议本质就是软件,软件是可以"分层"协议在设计的时候,就是被层状的划分的, 为什么要划分成为层状结构 场景复杂功能解耦(便于人们进行各种维护)OSI七层模型 局域网中…...

    2023/5/9 14:15:05
  20. GIL的前世今生以及原理

    线程是操作系统进行计算和调度的最小的单位&#xff0c;程序运行在这里&#xff0c; 每一个线程有属于自己的上下文。进程是比线程更大一点的单位&#xff0c; 每个进程有自己的内存之类的&#xff0c;每个进程有好几个线程&#xff0c;共享内存&#xff0c;就是可以读写同样的…...

    2023/6/4 6:55:13

最新文章

  1. 一、tienchin健身系统技术点复现-注解限流

    一、tienchin健身系统技术点复现-注解限流 这个技术用到的点是 用Java代码执行 redis 的 lua 脚本&#xff0c;采用 请求接口方法 注解RateLimiter &#xff0c;前置通知拦截判断请求次数&#xff0c;做出限流操作。 Gitee代码仓库-rate-limiter 1、application.yml 配置 re…...

    2023/6/7 0:42:26
  2. iOS_Error(五)

    iOS_Error&#xff08;五&#xff09; 平时遇到的一些error解决办法&#xff0c;记录 for 再次遇到 The linked framework ‘Pods_QNBUALiveIncubator_Example.framework’ is missing one or more architectures required by this target: armv7. Target > Build Settings …...

    2023/6/7 0:42:14
  3. 编写 OPC UA Compile的模型设计文件

    OPC Foundation 开源了一个模型编译工具-UA ModelCompiler.它接受下面两种信息模型格式&#xff1a; NodeSet2.xmlModelDesign.xml 看来ModelDesign 是专门为UA ModelCompiler设计的&#xff0c;采用了分层结构描述&#xff0c;它比NodeSet2 可读性更好一点。适合使用普通文本…...

    2023/6/7 0:41:45
  4. STM32 实现简单定时任务调度器,支持动态添加临时任务

    代码实现和硬件没关系&#xff0c;所以并不限于STM32&#xff0c;Arduino 之类的其他地方也能用&#xff0c;只要有一个能获取时间的函数就行&#xff0c;或者说&#xff0c;只要有一个会随着时间自动增加的变量就行&#xff0c;时间单位无所谓&#xff0c;所以确实想的话&…...

    2023/6/7 0:41:12
  5. Qt/GUI/布局/实现窗口折叠效果/且在操作时父窗口尺寸跟随变动

    文章目录 概述无法resize到小尺寸可行方案其他方案 概述 本文旨在&#xff0c;实现如下所示的显示或隐藏 ‘附加选项’ 的效果&#xff0c;以折的不常用信息和操作项&#xff0c;减少普通用户负担&#xff0c;提升用户体验。在某些软件中此类窗口折叠效果&#xff0c;常用 “……...

    2023/6/7 0:40:44
  6. 菜单权限验证和分页功能

    权限验证 1.创建数据库&#xff0c;然后测试菜单权限的联合查询语句&#xff1b; 2.创建项目&#xff0c;导入jar包&#xff0c;配置实体类和工具类 3.完成登录功能&#xff0c;当输入用户名和密码正确后跳转到框架页面 编写导航页&#xff08;top.jsp&#xff09;和内容页…...

    2023/6/7 0:40:14
  7. 初识哈希表

    哈希表 1.引入2.哈希思想3.哈希技术的三个关键问题3.1 哈希表容量的设计3.2 哈希技术关键之二&#xff1a;哈希函数哈希函数构造方法哈希函数示例&#xff1a;线性函数哈希函数示例&#xff1a;除留余数法 3.3 哈希技术关键之三:解决冲突策略开放定址法开放定址法——线性探测法…...

    2023/6/7 0:40:03
  8. 计算机视觉:语义分割理论及实战

    语义分割 语义分割&#xff08;Semantic Segmentation&#xff09;是指将一张图像分割成若干个区域&#xff0c;并对每个区域赋予语义标签的任务。它是计算机视觉中的一种重要技术&#xff0c;被广泛应用于自动驾驶、医学图像分析、地理信息系统等领域。 与传统的图像分割任务…...

    2023/6/7 0:39:48
  9. 宝塔安装ModStart常见问题

    Q&#xff1a;环境提示PHP未禁用危险函数 安装系统时通常会需要解禁 system,exec,passthru,shell_exec,popen,proc_open 等危险函数。部分集成环境会提示危险函数风险&#xff0c;通常可以如下方式解决&#xff1a; 该函数在通常只是在系统 系统安装/系统升级/模块安装/模块升…...

    2023/6/7 0:39:31
  10. java设计模式之:建造者模式

    文章目录 建造者模式介绍建造者模式适用场景案例场景一坨坨代码实现重构代码 与工厂模式区别建造者模式优缺点总结 该说不说几乎是程序员都知道或者了解设计模式&#xff0c;但大部分小伙伴写代码总是习惯于一把梭。好的代码不只为了完成现有功能&#xff0c;也会考虑后续扩展。…...

    2023/6/7 0:39:22
  11. Vue3新特性解析:响应式API、Composition API与Teleport

    Vue3是Vue.js框架的最新版本,带来了一系列令人期待的新特性,包括响应式API、Composition API和Teleport。本文将深入探讨这些新特性的原理、性能、示例和应用场景,帮助开发者更好地理解和运用Vue3,从而提高应用程序的性能和可维护性。 Vue3是Vue.js框架的最新版本,它带来…...

    2023/6/7 0:39:10
  12. 数据结构与算法练习(三)二叉树

    文章目录 1、树2、二叉树3、满二叉树4、完全二叉树5、二叉树的遍历&#xff08;前序、中序、后序&#xff09;二叉树删除节点或树 6、顺序存储二叉树顺序存储二叉树遍历&#xff08;前序、中序、后序&#xff09; 7、线索化二叉树中序线索二叉树前序线索二叉树后序线索二叉树 1…...

    2023/6/7 0:38:42
  13. 整合开源治理经验,共谋开源社区发展|2023 开放原子全球开源峰会开源社区治理与运营分论坛即将启幕

    在数智时代广泛连接、同步演进和网状协作特性的催化下&#xff0c;开源社区正在成为技术应用和行业数字化发展的重要推动力量。开展数字技术开源社区的有效治理&#xff0c;对调和相互冲突的内外部需求、协调相互竞合的参与主体、整合差异化的绩效目标具有重要理论和实践意义。…...

    2023/6/7 0:38:23
  14. ESP32--- OLDE动态数字显示

    动态数字显示 从逻辑上来说&#xff0c;就是绘制一个实心方块&#xff0c;遮挡上一次绘制的内容&#xff0c;然后再绘制这一次的。 //动画数字效果 函数如下 显示效果&#xff1a;数字递增变化&#xff0c;同时对应这直线增加 void dynamicNum(int x, int y, int num) { int i;…...

    2023/6/7 0:38:09
  15. kafka--多易杰哥讲解

    Kafka是一种分布式的流式数据平台&#xff0c;广泛应用于实时流数据处理和消息系统。它可以让处理数据的应用程序能够处理高流量的数据流&#xff0c;同时提供可靠性和可扩展性。 【多易教育】-Kafka文档 1.基本概念 1.1什么是kafka Kafka 最初是由 LinkedIn 即领英公司…...

    2023/6/7 0:36:30
  16. 架构师如何找到自己的商业模式

    作为一个架构师&#xff0c;必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言&#xff0c;架构师的可用资源&#xff0c;包括商业成本、研发成本、时间成本、迁移成本等等&#xff0c;都是非常有限的。但架构活动就是要在这些限制条件之下&#…...

    2023/6/7 0:35:23
  17. Java POI技术

    引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version> </dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-oo…...

    2023/6/7 0:35:12
  18. 完败!资深码农 VS 新手+AI;阿里云AI黑客松千万奖金池;手把手教你用AI写小说;微软AI入门课 | ShowMeAI日报

    &#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 阿里云首届AI黑客马拉松&#xff0c;共享 1000 万美元风投资金池 阿里云官方宣布&#xff0c;将以国内最大AI模型社区「Model Scope 魔…...

    2023/6/7 0:35:00
  19. 常用的 SQL Server 关键字及其含义

    SQL Server 是一种关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;提供了用于管理和操作数据库的各种关键字。 以下是一些常用的 SQL Server 关键字及其含义&#xff1a; 1. SELECT: 用于从数据库中检索数据。 2. INSERT: 用于将新记录插入到数据库表中。 3…...

    2023/6/7 0:34:49
  20. 【华为OD机试】阿里巴巴找黄金宝箱(IV)【2023 B卷|200分】

    【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地, 藏宝地有编号从0-N的箱子,每个箱子上面有一个数字,箱子排列成一个环, 编号最大的箱子的下一个是编号为0的箱…...

    2023/6/7 0:34:37
  21. 注意!ChatGPT的Plus账号也会被封禁

    文 / 高扬&#xff08;微信公众号&#xff1a;量子论&#xff09; 最近经常看到有人丢个截图&#xff0c;然后悲伤地说&#xff0c;ChatGPT账号被封了。 这不是账号被封&#xff0c;而是所用的代理节点被OpenAI封了&#xff0c;换个节点即可。 这个截图才是账号真正被封的提示&…...

    2023/6/6 23:39:44
  22. 一键部署个人ChatGPT Web网站

    一键部署个人ChatGPT Web网站 githubVercel使用自己的域名 本文将向大家介绍如何通过Github和Vercel这两个具,轻松搭建自己的ChatGPT Web网站&#xff0c;并且我们还可以添加密码保护以防止恶意滥用。 github 首先&#xff0c;我们需要拥有一个Github账号和Vercel账&#xff0…...

    2023/6/6 22:47:18
  23. 【ChatGPT】基于tensorflow2实现transformer(GPT-4)

    请记住&#xff0c;您是一位NLP领域的专家和优秀的算法工程师。使用带有 tensorflow2.0 subclass api 的 python 从头开始实现 transformer 模型。 全部内容如下&#xff1a; 构建transformer模型架构和依赖层&#xff1b;生成并预处理一些假样本数据&#xff0c;用于训练上面…...

    2023/6/6 22:44:33
  24. ChatGPT的20种用法,挺不错建议收藏

    一、闲聊机器人 用途&#xff1a;这个不多说了&#xff0c;用来闲聊体验感真的很不错。 二、关键字提取 用途&#xff1a;NLP任务的重要作用&#xff0c;关键字提取&#xff01; 三、将产品描述转变为广告 用途&#xff1a; 这个功能对于商家来说太棒了。 四、情感分析 用途…...

    2023/6/6 22:40:57
  25. Openai+Coursera: ChatGPT Prompt Engineering(一)

    想和大家分享一下最近学习的Coursera和openai联合打造ChatGPT Prompt Engineering在线课程&#xff0c;下面是通过API来访问ChatGPT的主要代码&#xff1a; import openaiopenai.api_key XXXXXXXXXdef get_completion(prompt, model"gpt-3.5-turbo"):messages [{&…...

    2023/6/6 22:28:45
  26. 本地化部署AI语言模型RWKV指南,ChatGPT顿时感觉不香了。

    之前由于ChatGpt处处受限&#xff0c;又没法注册的同学们有福了&#xff0c;我们可以在自己电脑上本地化部署一套AI语言模型&#xff0c;且对于电脑配置要求也不是非常高&#xff0c;对它就是RWKV。 关于RWKV RWKV是一个开源且允许商用的大语言模型&#xff0c;灵活性很高且极…...

    2023/6/6 21:04:59
  27. 基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发

    目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Pycharm 环境ChatterBot 环境 模块实现1. 模型构建2. 服务器端3. 客户端4. 语音录入5. 接口调用6.模型训练及保存 系统测试1. 模型效果2. 模型应用 源代码下载地址其它资料下载 前言 本项目基于机器学习和语义识…...

    2023/6/6 16:54:09
  28. 创造之境:Stable Diffusion + chatGPT下的自动绘图探索

    什么是Stable Diffusion Stable Diffusion 是在2022年发布的深度学习文本到图像生成模型。它主要用于根据文字的描述生成详细图像&#xff0c;尽管它也可以应用于其他任务&#xff0c;如内插绘制、外插绘制&#xff0c;以及在提示词&#xff08;英语&#xff09;指导下生成图生…...

    2023/6/6 16:12:03
  29. 4个ChatGPT拓展出来的工具

    现在ChatGPT 相关 的方向非常的多&#xff0c;各个大厂一个一个推出了自己的大模型&#xff0c;从国外到国内&#xff0c;ChatGPT 相关 也有几十个&#xff0c;这是大厂的方向。 对于比较小的团队&#xff0c;很多都是在ChatGPT 的基础上进行的开发&#xff0c;下面罗列出4个在…...

    2023/6/6 14:10:23
  30. 了解Chatgpt key token计价或扣费说明

    了解Chatgpt key及token计费方式 Token及费用说明 token 与 文字 的换算 OpenAI的定价是基于token的&#xff0c;对于英文文本&#xff0c;1个token大约是4个字符或0.75个单词。通常1000个Token约等于750个英文单词或者400&#xff5e;500个汉字。 花费 1000个token的价格…...

    2023/6/6 12:58:22
  31. 如何用ChatGpt开发小游戏

    随着人工智能的快速发展&#xff0c;自然语言处理模型ChatGPT在各种应用中得到了广泛的应用。其中&#xff0c;开发小游戏是一个有趣而具有挑战性的任务。本文将介绍如何使用ChatGPT开发小游戏&#xff0c;并提供一些示例和技巧&#xff0c;帮助读者了解如何利用ChatGPT打造自己…...

    2023/6/6 12:20:52
  32. ChatGPT唤醒AI游戏:AIGC持续走深,游戏或成AI最佳抓手

    随着人工智能技术的不断发展&#xff0c;AI在游戏行业的应用日益深入。本文将详细探讨ChatGPT在AI游戏领域的应用&#xff0c;以及游戏如何成为AI技术的最佳抓手。让我们一起探讨这个有趣且充满潜力的领域。 一、引言 人工智能在各行各业都取得了巨大的成功&#xff0c;而游戏…...

    2023/6/6 11:31:05
  33. 【ChatGPT免费使用,无限制的问答和绘图模式】文末还介绍了最强的AI绘图模型演示,提供三重模型免费网站地址,阐述不要过分依赖ChatGPT,使用前也应该多思考观点

    分享一个免费且无需登录即可使用&#xff0c;结合问答与绘图模型&#xff0c; 可自由调节模型参数的公益网站&#xff1a; https://shdily.com 绘图一定要多描述特征&#xff08;推荐英语&#xff09;&#xff0c;才能有更好的效果 注意&#xff1a; 此网站在使用腾讯服务器…...

    2023/6/6 10:53:10
  34. 【原创】免费,不限量,使用OpenAI ChatGPT方法大揭秘

    文章目录 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT1、安装最新版的Edge浏览器2、选中浏览器的配置中的扩展3、在启动新页时&#xff0c;就可以看到chatGPT了4、这就可以免费使用chatGPT啦 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT 1、安装最新版的Edg…...

    2023/6/6 9:46:10
  35. 如何安装ChatGPT?

    ChatGPT是一款流行的在线聊天机器人&#xff0c;可帮助您与朋友、家人或客户进行沟通交流。如果您正在寻找一种快捷便利的工具来提高与他人的沟通能力&#xff0c;那么ChatGPT可能是一个不错的选择。 那么&#xff0c;如何在您自己的设备上安装ChatGPT呢&#xff1f;这里为您提…...

    2023/6/6 8:50:34
  36. 【ChatGPT白嫖大全】什么年代了?还在看传统文章?

    &#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:学习番外篇⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你了解更多热点知识   &#x1f51d;&#x1f51d; 白嫖大法 1. 前言&#x1f6a9;2. 需要…...

    2023/6/6 7:38:28
  37. Elasticsearch:如何使用 Elasticsearch 以自然语言提示 ChatGPT

    作者&#xff1a;Enrico Zimuel 这些天每个人都在谈论 ChatGPT。 这种大型语言模型 (LLM) 的一项很酷的功能是能够生成代码。 我们用它来生成 Elasticsearch DSL 查询。 目标是在 Elasticsearch 中搜索 “给我股票指数中 2017 年的前 10 个文档&#xff08;Give me the first 1…...

    2023/6/6 2:09:15
  38. 目前可用的ChatGPT网站(6/5/2023更新)

    本文意在整理可用gpt-3.5、gpt-4.0等网站。 本文主要是方便自己翻阅&#xff0c;如对您也有所帮助&#xff0c;不胜荣幸~ 文章目录 GPTTalkChat机器人wuguokai.cnWeBoT(GPT-4)bing.com(GPT-4)HuggingChat总结 GPTTalk 网址&#xff1a;https://gpttalk.live/gpt-3.5 Chat机器…...

    2023/6/7 0:10:38
  39. Chatgpt中文版无需代理,ChatGPT镜像

    Chatgpt中文版无需代理 网站ChatGPT中文版 ChatGPT中文版是一个基于人工智能技术的聊天机器人&#xff0c;它可以模拟人类的自然语言交互&#xff0c;回答用户的各种问题和提供各种服务。它的核心技术是GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型&am…...

    2023/6/6 23:03:34
  40. ChatGPT中文版Prompt提示工程超详细指南《提示工程简介及示例》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(一)

    提示工程简介及示例 前言Introduction 导言提示工程简介什么是提示工程大语言模型设置基础提示词提示词格式提示词要素设计提示的通用技巧从简单开始指令具体性避免不精确做还是不做&#xff1f; 提示词示例文本概括信息提取问答文本分类对话代码生成推理 说明参考资料其它资料…...

    2023/6/6 22:18:14
  41. AI(二):初体验(Cursor、Copilot、Bito、Notion、ChatExcel、Gamma、Tome、ChatPDF、AI-Video、SD、ChatGPTAPI、Midjourney)

    Cursor Cursor官网下载&#xff1a;https://www.cursor.so/ && https://github.com/getcursor/cursor Cursor.so是一款基于GPT的代码生成工具&#xff0c;它可以帮助开发者快速生成代码&#xff0c;提高开发效率。GPT是一种自然语言处理技术&#xff0c;可以根据输入…...

    2023/6/5 20:15:16
  42. Pandas+ChatGPT强强结合诞生PandasAI,数据分析师行业要变天了?

    大家好,我是千与千寻,可以叫我千寻,我自己主要的编程语言是Python和Java。 说到Python编程语言,使用Python语言主要使用的是数据科学领域的从业者。 Python编程语言之所以在数据科学领域十分火热,源于Python语言的三大数据科学工作包,NumPy,Pandas,SciPy。 以下是三…...

    2023/6/5 20:02:13
  43. 效率神器!神级ChatGPT浏览器插件分享

    大家好&#xff0c;我是卷了又没卷&#xff0c;薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师&#xff0c;带来最新的前沿AI知识和工具&#xff0c;欢迎大家交流~&#xff0c;后续我还会分享更多 AI 有趣工具和实用玩法&#xff0c;包括AI相关技术、ChatGPT、AI…...

    2023/6/5 19:35:10
  44. Ex-ChatGPT本地部署+Azure OpenAI接口配置+docker部署服务

    Ex-ChatGPT项目分为 Ex-ChatGPT 和 WebChatGPTEnhance 两部分&#xff0c;Ex-ChatGPT启动后是个web服务&#xff0c;通过访问ip端口体验&#xff1b; WebChatGPTEnhance可编译生成一个浏览器插件&#xff0c;Chrome或者Microsoft edge浏览器可以安装该插件&#xff0c;点击该插…...

    2023/6/5 18:36:13
  45. 【AI聊天丨 ChatGPT应用案例一】— 仅用30分钟,ChatGPT帮你完成专利交底书!

    Hi&#xff0c;大家好&#xff0c;我是零点壹客&#xff0c;今天主要也是想和大家一起唠唠ChatGPT&#xff0c; 尤其这两个月&#xff0c;ChatGPT出奇的火&#xff0c;想必各位圈友们或多或少的都已经有些了解。 ChatGPT的出现很大程度上已经改变了我们的工作方式&#xff0c;尤…...

    2023/6/5 18:10:19
  46. ChatGPT与网络安全

    文章目录 一、“AI用于攻击”二、“AI用于安全&#xff08;防御&#xff09;”三、“AI的防御”四、“AI被攻击” ChatGPT作为基于生成式预训练模型&#xff08;GPT&#xff09;的聊天机器人&#xff0c;其核心技术是自然语言处理&#xff08;NLP&#xff09;。随着NLP技术的不…...

    2023/6/6 23:47:34
  47. 三联周刊和ChatGPT一起专访了《人类简史》作者尤瓦拉·赫拉利

    *本文为「三联生活周刊」原创内容 “人类文化基于语言。而因为人工智能已经破解了语言,它现在可以开始创造文化。” 主笔 | 苗千 记者|肖楚舟 张宇琦 编辑|曾焱 尤瓦尔赫拉利(Yuval Noah Harari)以其《人类简史》《未来简史》和《今日简史》等风靡全球的著作,成为当…...

    2023/6/5 14:33:50
  48. ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告

    创作背景 CHATGPT刚出现时我的内心有一万匹“马”在奔腾&#xff0c;我是排斥的、BS的、甚至关掉屏敝掉相关新闻、连家里电视机的插线都拨掉。因为它的表现真的伤到了我的自尊。 这样的情绪源至我自己的“不自信”&#xff0c;不自信的前提是因为听到的东西太过于有“冲击性”了…...

    2023/6/6 14:43:49
  49. 国内使用chatGPT插件

    无需任何繁琐操作&#xff0c;只要你一打开edge浏览器就能使用chatGPT&#xff0c;还要什么自行车&#xff01; 那么如何使用呢&#xff1f;其实操作是非常简单的&#xff01; 步骤 第一步&#xff1a;下载edge浏览器 edge浏览器一般Windows10系统都自带了&#xff0c;没有的…...

    2023/6/6 13:51:46
  50. 可以免费使用的ChatGPT保姆级教程 (New Bing)

    ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 最近&#xff0c;ChatGPT已经非常流行&#xff0c;但由于各种原因&#xff0c;国内用户无法直接免费使用ChatGPT的API&#xff0c;各种伟大的神也利用这…...

    2023/6/6 13:30:36
  51. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  52. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  53. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  54. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  55. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  56. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  57. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  58. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  59. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  60. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  61. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  62. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  63. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  64. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  65. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  66. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  67. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  68. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  69. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  70. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57