当前位置:网站首页>二、并发、测试笔记 青训营笔记
二、并发、测试笔记 青训营笔记
2022-07-07 03:40:00 【低调的骏马】
并发、单元测试课程笔记 | 青训营笔记
这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
并发
并发和并行
并发:在一个核的CPU中运行
并行:在多个核的CPU中运行
协程和线程
- 协程:用户态轻量级线程,KB级别
- 线程:内核态,可跑多个的协程,MB级别
协程的通信
channel(是否同步->消费和生产的效率不等)
Lock(并发安全)
sync包下的Mutex,加锁保证并发安全
WaitGroup
方法:
结构:
测试
单元测试
规则
assert(例子:assert.Equal()方法,快速比较判断测试结果)
覆盖率()<===“–cover”
依赖((mock机制)幂等、稳定==》打桩)
幂等:每一次测试运行都应该产生与之前一样的结果
Mockey Patch的作用域在Runtime,在运行时通过通过Go的unsafe包,将内存中函数的地址替换为运行时函数的地址。将待打桩函数或方法的实现跳转。
基准测试
测试程序运行的性能和CPU的损耗
ps:执行rand要消耗的时间比较长,因为rand为了保证全局的随机性和并发安全,持有了一把全局锁,因此推荐使用一种高性能随机数方法fastrand,牺牲了一定的数列一致性。
补充
登录两种形式区别
一、Cookie和Session
和端上进行交互的话一般是使用这种方式鉴权。
二、JWT+Token
不需要依赖一些存储,一般是后端直接解密。
一般在于服务器、http进行交互的话,使用JWT+token
消息队列应用场景
解决的问题主要都是隔离作用
使用场景:两种方法,如果是强依赖,就无法通过这种方式进行实现
如果是非强依赖,方法A是发布一个消息、事件,方法B是接收并消费这个事件去做异步的处理,这样的情况下使用消息队列,就能起到解耦的功能
强依赖,就无法通过这种方式进行实现
如果是非强依赖,方法A是发布一个消息、事件,方法B是接收并消费这个事件去做异步的处理,这样的情况下使用消息队列,就能起到解耦的功能
边栏推荐
- Stockage et pratique des données en langage C (haut niveau)
- The currently released SKU (sales specification) information contains words that are suspected to have nothing to do with baby
- 考研失败,卷不进大厂,感觉没戏了
- Master-slave replication principle of MySQL
- Torefs API and toref API
- Pass parent component to child component: props
- 身边35岁程序员如何建立起技术护城河?
- Abnova circulating tumor DNA whole blood isolation, genomic DNA extraction and analysis
- 虚拟机的作用
- How do I get the last part of a string- How to get the last part of a string?
猜你喜欢
Four goals for the construction of intelligent safety risk management and control platform for hazardous chemical enterprises in Chemical Industry Park
transform-origin属性详解
Freeswitch dials extension number source code tracking
Cloud backup project
深度学习花书+机器学习西瓜书电子版我找到了
Nesting and splitting of components
抽絲剝繭C語言(高階)數據的儲存+練習
云备份项目
Outlier detection technology of time series data
Initial experience of teambiion network disk (Alibaba cloud network disk)
随机推荐
Pass parent component to child component: props
Détailler le bleu dans les tâches de traduction automatique
Kuboard can't send email and nail alarm problem is solved
Blue Bridge Cup Netizen age (violence)
Blue Bridge Cup Birthday candles (violence)
[Luogu p1971] rabbit and egg game (bipartite game)
Project practice five fitting straight lines to obtain the center line
Wechat applet full stack development practice Chapter 3 Introduction and use of APIs commonly used in wechat applet development -- 3.9 introduction to network interface (IX) extending the request3 met
MySQL service is missing from computer service
$refs:组件中获取元素对象或者子组件实例:
【leetcode】1020. Number of enclaves
Sqlserver multithreaded query problem
Sword finger offer high quality code
非父子组件的通信
Academic report series (VI) - autonomous driving on the journey to full autonomy
抽丝剥茧C语言(高阶)指针进阶练习
Common function detect_ image/predict
Master-slave replication principle of MySQL
Apache AB stress test
Le Service MySQL manque dans le service informatique