自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(453)
  • 资源 (8)
  • 收藏
  • 关注

原创 Redis 主库挂了,如何不间断服务?

哨兵机制,是实现 Redis 不间断服务的重要保证。具体来说,主从集群的数据同步,是数据可靠的基础保证;而在主库发生故障时,自动的主从切换是服务不间断的关键支撑。Redis 的哨兵机制自动完成了以下三大功能,从而实现了主从库的自动切换,可以降低 Redis 集群的运维开销:监控主库运行状态,并判断主库是否客观下线;在主库客观下线后,选取新主库;选出新主库后,通知从库和客户端。

2023-11-28 22:20:24 457

原创 Windows 使用的一些小技巧

​ 优化电脑内存与核心数量,由于默认引导高级选项并没有检测优化内存与CPU,因此我们可以根据我们电脑配置进行优化,如果电脑是双核处理器,我们可以将处理器选择为 2 个,此处我直接选择处理器个数的最大数。​Check Disk,简称“CHKDSK”,是一种Windows内置的实用程序,可以检查硬盘文件系统的完整性,并可以修复FAT16、FAT32和NTFS硬盘上的各种文件系统错误。然后,会弹出一个文件夹,里边存放的都是各种临时文件,可以手动删除,遇到删不掉的文件,点击跳过即可。

2023-10-29 18:43:54 127

原创 使用 Redis 如何统计一亿个 keys ?

redis 中 Set、Sorted Set、Hash、List、Bitmap、HyperLogLog 的支持情况和优缺点汇总可以看到,Set 和 Sorted Set 都支持多种聚合统计,不过,对于差集计算来说,只有 Set 支持。Bitmap 也能做多个 Bitmap 间的聚合计算,包括与、或和异或操作。当需要进行排序统计时,List 中的元素虽然有序,但是一旦有新元素插入,原来的元素在 List 中的位置就会移动,那么,按位置读取的排序结果可能就不准确了。

2023-10-24 21:59:36 111

原创 并发编程7:线程池的使用

如果没有线程正在等待,并且线程池的当前大小小于最大值,那么ThreadPoolExecutor 将创建一个新的线程,否则根据饱和策略,这个任务将被拒绝。它提供了大量可调节的选项,例如创建线程和关闭线程的策略,处理队列任务的策略,处理过多任务的策略,并且提供了几个钩子方法来扩展它的行为。同样,当线程池中的任务是数据库连接的唯一使用者时,那么线程池的大小又将限制连接池的大小。如果某个线程的空闲时间超过了存活时间,那么将被标记为可回收的,并且当线程池的当前大小超过了基本大小时,这个线程将被终止。

2023-09-07 17:15:30 156

原创 并发编程6:任务或线程的取消与关闭

Java 提供了中断 (Interruption)协作机制,通过该机制能够使一个线程终止另一个线程的当前工作。这种协作式的方法是必要的,我们很少希望某个任务、线程或服务立即停止,因为这种立即停止会使共享的数据结构处于不一致的状态。相反,在编写任务和服务时可以使用一种协作的方式:当需要停止时,它们首先会清除当前正在执行的工作,然后再结束。这提供了更好的灵活性,因为任务本身的代码比发出取消请求的代码更清楚如何执行清除工作。//中断操作应该由中断线程本身去决定何时中断。

2023-09-04 10:47:47 142

原创 并发编程5:如何执行任务?

大多数并发应用程序都是围绕来构造的:任务通常是一些抽象的且离散的工作单元。通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构,提供一种事务边界来优化错误恢复过程,以及提供一种并行工作结构来提升并发性。//目的:如何把一个工作拆解成多个任务,并发执行->清晰的任务边界(独立任务有利于并发)

2023-08-23 14:09:01 128

原创 并发编程4:Java 中的并发基础构建模块

委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。Java 平台类库包含了丰富的并发基础构建模块,例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)等。Java 并发类的 API 文档,。

2023-08-17 17:38:45 97

原创 并发编程3:如何设计线程安全的类

上边代码稍微改变了车辆追踪器类的行为,在使用监视器模式的车辆追踪器中返回的是车辆位置的快照,而在使用委托的车辆追踪器中返回的是一个不可修改但却实时的车辆位置视图。它并不关心底层的 List 是否是线程安全的,即使 List 不是线程安全的或者修改了它的加锁实现,ImprovedList 也会提供一致的加锁机制来实现线程安全性。为了防止多个线程在并发访问同一个对象时产生的相互干扰,这些对象应该要么是线程安全的对象,要么是事实不可变的对象,或者由锁来保护的对象。

2023-08-09 15:37:23 82

原创 并发编程2:如何进行对象共享?

“发布(Publish)”一个对象的思是指,使对象能够在当前作用域之外的代码中使用。例如,将一个指向该对象的引用保存到其他代码可以访问的地方,或者将引用传递到其他类的方法中。发布内部状态可能会破坏封装性,并使得程序难以维持不变性条件。例如,如果在对象构造完成之前就发布该对象,就会破坏线程安全性。当某个不应该发布的对象被发布时,这种情况就被称为逸出( Escape)。

2023-08-08 15:38:52 103

原创 并发编程1:线程安全性概述

当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。//所见即所知。

2023-08-07 17:27:21 100

原创 操作系统18:磁盘I/O速度、磁盘可靠性、数据一致性

一个事务在对一批数据执行修改操作时,要么全部完成,并用修改后的数据去代替原来的数据,要么一个也不修改。事务操作所具有的这种特性,即事务的原子性(Atomic)。作为单个程序单元执行的一系列操作,并不是都可以成为事务,也就是说,如果定义其为事务,则必须同时满足四个属性,即事务属性 ACID。除了上述的原子性外,事务还应具备的属性是:一致性(Consistent),即事务在完成时,必须使所有的数据都保持一致状态隔离性(Isolated)

2023-07-26 11:50:24 543

原创 Spring Security 授权体系结构

例如,在具有“Admin”和“User”角色概念的应用程序中,希望管理员(“Admin”)能够执行普通用户(“User”)的所有操作。用户可以通过实现 AuthorizationManager 接口来自定义授权控制,同时,Spring Security 附带了一个委托 AuthorizationManager,它可以与各个 AuthorizationManager 进行协作。至此,Spring Security 的授权架构介绍完毕,在这篇文章中,更多的是方法论,具体的使用细节将在后续文章中进行补充。

2023-07-25 17:44:55 349

原创 Spring Security 身份验证的基本类/架构

用作验证用户凭据的基本过滤器。在对凭证进行身份验证之前,Spring Security 通常会使用来请求凭证。doFilter 源码】//总流程//身份认证过滤器的处理流程if (!} else {try {//1- 尝试进行身份验证return;//2-如果验证成功,创建新会话,更新sessionId//3-调用认证成功后处理流程//4-调用认证失败后处理流程//4-调用认证失败后处理流程接下来,可以对提交给它的任何身份验证请求进行身份验证。

2023-07-24 11:22:01 534

原创 Spring Security 的工作原理/总体架构

这些过滤器的排序是Spring官方提供的,后来Spring可能觉得这样展示的意义不大,删去了这部分内容, 补充了一些从日志查看过滤器加载顺序的说明。//首先说,这里就是 Spring Security 的工作原理,重中之重,非常重要,虽然讲的是一个异常过滤器,但是实际上是一个执行流程。// 在Spring 中,Spring 管理过滤器的生命周期,所以 Filter 实例也是 Spring 中的一个Bean。//见名知意,过滤器链的代理 FilterChainProxy 中会持有过滤器链的对象。

2023-07-20 17:18:21 251

原创 前端基础:HTML和CSS简介

HTML 指的是超文本标记语言 (HyperTextMarkupLanguage),标记语言(markup language) 不是一种编程语言,而是一套标记标签标记标签来描述网页W3C_HTML5。W3C_HTML实例。// 页面布局,表单提交等标签内容//一个前端页面的组成:html(标签) + css(样式) + js(动态页面) + 图片等CSS是一种描述 HTML 文档样式的语言,CSS 描述应该如何显示 HTML 元素。CSS指的是层叠样式表C。

2023-07-16 17:37:09 659

原创 操作系统17:外存组织方式和文件存储管理

索引组织方式的主要问题是,每当建立一个索引文件时,应为该文件分配一个索引块将分配给该文件的所有盘块号记录于其中。,称为第一级索引,即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块、···.··等索引块的盘块号填入到此索引表中,这样便形成了两级索引分配方式。这种方法的优点是用于分配和回收一个盘块的过程非常简单,但在为一个文件分配盘块时,可能要重复操作多次,分配和回收的效率较低。这样,在为文件分配磁盘空间时,就无须知道盘块的大小,只要根据不同的磁盘容量,选择相应大小的簇,使 NTFS。

2023-07-14 13:21:08 679

原创 操作系统16:文件共享和文件保护

下图中给出了两个保护域。当用户通过 D5 访问被链接的文件 F8,且正要读 LINK 类新文件时,此要求将被 OS 截获,OS 根据新文件中的路径名去找到文件 F8,然后对它进行读(写),这样就实现了对文件 F8 的共享。号,表示运行在 D1 域中的进程可以将其对文件 F3 的写访问权扩展到域 D3 中去,类似的,在域 D2 中对文件 F2 的读访问权也是一样。,即有多个属于不同用户的多个目录,同时指向同一个文件,虽会破坏树的特性,但这些用户可用对称的方式实现文件共享,而不必再通过其属主目录来访问。

2023-07-14 13:19:22 367

原创 操作系统15:文件和文件目录

在对索引顺序文件进行检索时,首先也是利用关键字以及某种查找算法去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置。但为了能实现文件存储空间的动态分配,通常由 Hash 函数所求得的并非是相应记录的地址,而是指向某一目录表相应表目的指针,该表目的内容指向相应记录所在的物理块,如下图所示。索引顺序文件是对顺序文件的一种改进,它基本上克服了变长记录的顺序文件不能随机访问,以及不便于记录的删除和插入的缺点,它是顺序文件和索引文件相结合的产物。单级文件目录如下图所示。

2023-07-13 09:53:34 796

原创 操作系统14:缓冲区和磁盘调度算法

SCAN 算法既能获得较好的寻道性能,又能防止“饥饿”现象,但是当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。如,用于指示下一个有数据的缓冲区 G 的指针 Nextg,指示下次可用的空缓冲区 R 的指针 Nexti,以及用于指示正在使用的缓冲区 C 的指针 Current。

2023-07-12 09:02:15 586

原创 操作系统13:中断处理程序和设备驱动程序

当一个进程请求 I/O 操作时,该进程将被挂起,直到 I/O 设备完成 I/O 操作后,设备控制器便向 CPU 发送一个中断请求,CPU 响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态。具体的 I/O 操作是在设备控制器的控制下进行的,因此,在设备忙于传送数据时,处理机又可以去干其它的事情,实现了处理机与 I/O 设备的并行操作。CPU 的绝大部分时间都处于等待 I/O 设备完成数据 I/O 的循环测试中,造成对 CPU 的极大浪费。

2023-07-11 11:13:03 1105

原创 操作系统12:I/O系统的功能、模型、接口及 I/O 设备和设备控制器

I/O 系统管理的主要对象是 I/O 设备和相应的设备控制器。其最主要的任务是,完成用户提出的 I/O 请求,提高 I/O 速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。

2023-07-10 11:01:59 1142

原创 操作系统11:虚拟存储器

一次性,是指作业必须一次性地全部装入内存后方能开始运行。驻留性,是指作业被装入内存后,整个作业都一直驻留在内存中,其中任何部分都不会被换出,直至作业运行结束。由此可以看出,上述的一次性及驻留性特征使得许多在程序运行中不用或暂时不用的程序占据了大量的内存空间,而一些需要运行的作业又无法装入运行,显然,这是在浪费宝贵的内存资源。所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

2023-07-07 13:29:45 679

原创 操作系统10:分页存储和分段存储

连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,便可充分地利用内存空间,而。基于这一思想而产生了离散分配方式。根据在时所,又可将离散分配分为以下三种:分页存储管理方式//程序分页,存储分块分段存储管理方式。

2023-07-06 09:32:37 1333

原创 操作系统9:存储管理之连续分配和对换

若大小为 2^(i+1) 的空闲分区也不存在,则需要查找大小为 2^(i+2) 的空闲分区,若找到则也对其进行两次分割:第一次,将其分割为大小为 2^(i+1) 的两个分区,一个用于分配,一个加入到大小为 2^(i+1) 的空闲分区链表中;,如回收大小为 2^i 的空闲分区时,若事先已存在 2i 的空闲分区,则应将其与伙伴分区合并为大小为 2^(i+1) 的空闲分区,若事先已存在 2^(i+1) 的空闲分区,又应继续与其伙伴分区合并为大小为 2^(i+2) 的空闲分区,依此类推。

2023-07-06 09:31:07 275

原创 操作系统8:存储器的层次结构及程序的装入和链接

在链接成一个装入模块后,原模块 B 和 C 在装入模块的起始地址不再是 0,而分别是 L 和 L+M,所以此时须修改模块 B 和 C 中的相对地址,即把原 B 中的所有相对地址都加上 L,把原 C 中所有相对地址都加上 L+M。由此可见,正确的方法应该是,将取数指中的地址 2500 修改成 12500,即把指令中的逻辑地址 2500 与本程序在内存中的起始地址 10000 相加才得到正确的物理地址 12500。或者说,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显地影响到处理机的运行。

2023-07-05 16:54:57 228

原创 操作系统7:进程死锁

在系统中有许多不同类型的资源,其中可以引起死锁的主要是,采用互斥访问、不可以被抢占的资源,即临界资源。系统中这类资源有很多,如打印机、数据文件、队列、信号量等。在一组进程发生死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占有的资源。由于所有这些进程已都无法运行,因此它们谁也不能释放资源,致使没有任何一个进程可被唤醒。这样这组进程只能无限期地等待下去。所以,如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的(DeadLock)。

2023-07-05 16:28:47 272

原创 操作系统5:线程的概念和线程实现

而用户级线程在切换时则不须转入内核态,而是由运行时系统中的线程切换函数,来执行切换任务,该过程将线程的 CPU 状态保存在该线程的堆中,然后按照一定的算法,选择一个处于就绪状态的新线程运行,将新线程堆栈中的 CPU 状态装入到 CPU 相应的寄存器中,一旦将栈指针和程序计数器切换后,便开始了新线程的运行。对于用户的线程切换而言,其模式切换的开销较大,在同一个进程中,从一个线程切换到另一个线程时,需要从用户态转到内核态,因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。

2023-06-29 16:18:08 314

原创 操作系统4:进程通信类型和通信实现方式

进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程间交换一定的信息,所以它们也是一种进程通信,但只是一种低级的进程通信。//数据量少//过程繁琐在进程之间要传送大量数据时,应当利用 OS 提供的高级通信工具,该工具最主要的//数据量大//使用简单。

2023-06-29 15:32:50 647

原创 操作系统3:进程同步和经典的进程同步问题

系统中的各种硬件资源和软件资源均可用数据结构抽象地描述其资源特性,即用少量信息和对该资源所执行的操作来表示该资源,而忽略它们的内部结构和实现细节。// 资源可以被抽象因此,可以利用共享数据结构抽象地表示系统中的共享资源,并且将对该共享数据结构实施的特定操作定义为一组过程。进程对共享资源的申请、释放和其它操作必须通过这组过程,间接地对共享数据结构实现操作。

2023-06-28 18:02:04 1115

原创 操作系统6:处理机的任务调度和进程调度

在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。处理机调度算法是指根据处理机分配策略所规定的处理机分配算法。// 资源分配。

2023-06-25 10:02:37 417

原创 操作系统2:进程的描述与控制

前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(DirectedAcyclic Graph),它用于描述进程之间执行的先后顺序。// 描述工具注意,前趋图中是不允许有循环的,否则必然会产生不可能实现的前趋关系。如图 2-1(b) 所示的前趋关系中就存在着循环。它一方面要求在 S3 开始执行之前 S2 必须完成,另一方面又要求在 S2 开始执行之前,S3 必须完成。显然,这种关系是不可能实现的。// 前驱图不允许循环程序顺序执行。

2023-06-17 17:08:45 561

原创 操作系统1:操作系统的基本特征和主要功能

操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

2023-06-08 10:42:19 2188

原创 数据结构之二叉树(Binary Tree)详解

二叉树(Binary Tree)是一种常见的树状数据结构,它由一组节点组成,这些节点通过边连接起来。每个节点最多可以有两个子节点,分别称为左子节点和右子节点。二叉树的特点包括:每个节点最多有两个子节点。这两个子节点可以为空(null),也可以存在一个或两个子节点。左子节点和右子节点的顺序是有意义的,即左子节点在右子节点之前或之后。每个节点通常包含一个值(或称为关键字)以及其他辅助信息。

2023-06-06 12:19:00 1118

原创 NIO编程

NIO(New I/O)是Java中一种提供了非阻塞式I/O操作的编程模型。它引入了一组新的Java类,用于取代传统的Java I/O类(如InputStream和OutputStream),以提供更高效、更灵活的I/O操作。// 部分NIO API实际上是阻塞的,例如File APIJava NIO允许执行非阻塞的IO。例如,线程可以请求通道将数据读入缓冲区。当通道将数据读入缓冲区时,线程可以做其他事情。一旦数据被读入缓冲区,线程就可以继续处理它。将数据写入通道也是如此。

2023-06-02 16:17:19 668

原创 排序算法之归并排序

数据移动次数要求较高的场合:相比于快速排序和堆排序,归并排序需要移动的数据元素的次数较少,因此在数据移动次数要求较高的场合中,归并排序是更加适合的算法。数据移动次数较少:相比于快速排序和堆排序,归并排序需要移动的数据元素的次数较少,因此在数据移动次数要求较高的场合中,归并排序是更加适合的算法。大规模数据的排序:归并排序的时间复杂度为 O(nlogn),相比于其他排序算法,它更适合对于大规模数据的排序,如对于海量数据的外部排序。稳定性:归并排序是一种稳定排序算法,不会改变相等元素之间的相对顺序。

2023-06-01 16:02:46 335

原创 六种基本网络拓扑结构详解

常见的网络拓扑结构有以下6种:1.总线型网络拓扑结构;2.星型网络拓扑结构;3.环形网络拓扑结构;4.树型网络拓扑结构;5.网状网络拓扑结构;6.混合网络型拓扑结构。

2023-05-26 16:31:48 4079

原创 排序算法之快速排序

快速排序的排序错误主要是因为在选取枢轴元素时的不合理选择导致的,例如选择的枢轴元素恰好是当前待排序数组中的最大或最小元素,或者枢轴元素与其他元素相同且在排序过程中没有特殊处理。它的基本思想是通过一趟排序将待排数据分割成独立的两部分,其中一部分的所有元素都比另一部分的所有元素小,然后再分别对这两部分继续进行排序,重复这个过程,直到所有的数据都排好序。需要注意的是,在实际应用中,由于快速排序是一种原地排序算法,因此它对于内存的消耗相对较小,同时由于它的时间复杂度较低,因此它广泛应用于各种场合。

2023-05-24 16:03:42 881 1

原创 Java 内存泄露问题详解

内存泄露指的是程序运行时未能正确释放不再使用的内存资源,导致这些内存资源无法被垃圾回收器回收和重新利用。内存泄露会导致程序占用越来越多的内存,最终可能导致内存耗尽和程序崩溃。在Java中,当一个对象不再被引用时,Java的垃圾回收器会自动将其标记为可回收,并在合适的时机释放其占用的内存。然而,如果存在内存泄露的情况,这些不再使用的对象仍然被保留在内存中,无法被垃圾回收器回收。内存泄露可能是由于编程错误、资源管理不当或设计问题引起的。

2023-05-22 15:01:54 2796 1

原创 排序算法之希尔排序

在每个gap值下,我们对数组进行插入排序,具体实现是使用一个内部的循环,从gap位置开始,逐个和前面的元素进行比较和交换。循环的条件是j >= gap && arr[j - gap] > temp,即当前元素前面还有元素,且前面的元素比当前元素大,我们就将前面的元素向后移动一位,同时j向前移动gap个位置。由于希尔排序先将数据进行分组,每组再使用插入排序,因此在排序前期能够快速消除大量的逆序对,减少后续的排序工作量。不过希尔排序的实现相对于插入排序要复杂一些,需要对增量序列的选择进行一定的优化。

2023-05-22 09:58:58 391

原创 Fork/Join 框架详解

Fork/Join 是一种并行计算模式,用于解决可以被分解成更小的可并行任务的问题。该模式包含两个关键操作:Fork(分解)和Join(合并)。在 Fork/Join 模式中,原始问题被递归地分解为更小的子问题,直到达到可以并行解决的最小单位。这个过程被称为 Fork。每个子问题可以独立地在不同的处理器上执行,并行地求解部分问题。一旦所有的子问题都被解决,就会进行 Join 操作。Join 操作将所有子问题的结果合并为最终的解决方案。

2023-05-16 11:30:10 692

护眼插件-浏览器夜间模式

护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式,护眼插件-浏览器夜间模式

2022-09-08

linuxJDK1.8

linuxJDK1.8

2022-03-25

everything搜索工具

everything搜索工具

2022-03-08

Another-Redis-Desktop-Manager.1.5.1.zip

redis客户端,解压即用

2022-03-06

jdk1.8.0_191.zip

JDK1.8,免安装,解压即可用,widows环境

2022-03-06

git安装程序.rar

git安装使用

2021-05-08

jsonview.zip

Json格式解析工具

2021-05-08

SecureCRT.zip

linux客户端软件

2021-05-01

apache-jmeter-3.1.rar

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

2020-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除