二、并发、测试笔记 青训营笔记

2023-10-29 15:59
文章标签 笔记 并发 测试 青训营

本文主要是介绍二、并发、测试笔记 青训营笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

并发、单元测试课程笔记 | 青训营笔记

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

并发

并发和并行

  • 并发:在一个核的CPU中运行

  • 并行:在多个核的CPU中运行

协程和线程

  • 协程:用户态轻量级线程,KB级别
  • 线程:内核态,可跑多个的协程,MB级别

协程的通信

channel(是否同步->消费和生产的效率不等)

image-20220508152652788

Lock(并发安全)

​ sync包下的Mutex,加锁保证并发安全

WaitGroup

方法:

image-20220508152957961

结构:

image-20220508153020254

测试

单元测试

  • 规则

  • assert(例子:assert.Equal()方法,快速比较判断测试结果)

  • 覆盖率(image-20220508153706611)<===“–cover”

  • 依赖((mock机制)幂等、稳定==》打桩)

    幂等:每一次测试运行都应该产生与之前一样的结果

    Mockey Patch的作用域在Runtime,在运行时通过通过Go的unsafe包,将内存中函数的地址替换为运行时函数的地址。将待打桩函数或方法的实现跳转。

基准测试

测试程序运行的性能和CPU的损耗

ps:执行rand要消耗的时间比较长,因为rand为了保证全局的随机性和并发安全,持有了一把全局锁,因此推荐使用一种高性能随机数方法fastrand,牺牲了一定的数列一致性。

补充

登录两种形式区别

一、Cookie和Session

和端上进行交互的话一般是使用这种方式鉴权。

二、JWT+Token

不需要依赖一些存储,一般是后端直接解密。

一般在于服务器、http进行交互的话,使用JWT+token

消息队列应用场景

解决的问题主要都是隔离作用

使用场景:两种方法,如果是强依赖,就无法通过这种方式进行实现

如果是非强依赖,方法A是发布一个消息、事件,方法B是接收并消费这个事件去做异步的处理,这样的情况下使用消息队列,就能起到解耦的功能

强依赖,就无法通过这种方式进行实现

如果是非强依赖,方法A是发布一个消息、事件,方法B是接收并消费这个事件去做异步的处理,这样的情况下使用消息队列,就能起到解耦的功能

这篇关于二、并发、测试笔记 青训营笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301741

相关文章

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

Java 结构化并发Structured Concurrency实践举例

《Java结构化并发StructuredConcurrency实践举例》Java21结构化并发通过作用域和任务句柄统一管理并发生命周期,解决线程泄漏与任务追踪问题,提升代码安全性和可观测性,其核心... 目录一、结构化并发的核心概念与设计目标二、结构化并发的核心组件(一)作用域(Scopes)(二)任务句柄

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MySQL中处理数据的并发一致性的实现示例

《MySQL中处理数据的并发一致性的实现示例》在MySQL中处理数据的并发一致性是确保多个用户或应用程序同时访问和修改数据库时,不会导致数据冲突、数据丢失或数据不一致,MySQL通过事务和锁机制来管理... 目录一、事务(Transactions)1. 事务控制语句二、锁(Locks)1. 锁类型2. 锁粒

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指