当前位置:网站首页>二、并发、测试笔记 青训营笔记
二、并发、测试笔记 青训营笔记
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是接收并消费这个事件去做异步的处理,这样的情况下使用消息队列,就能起到解耦的功能
边栏推荐
- Torefs API and toref API
- 详解机器翻译任务中的BLEU
- Special behavior of main function in import statement
- Hidden Markov model (HMM) learning notes
- How to model and simulate the target robot [mathematical / control significance]
- toRefs API 与 toRef Api
- 虚拟机的作用
- Academic report series (VI) - autonomous driving on the journey to full autonomy
- IP address
- Test of transform parameters of impdp
猜你喜欢
How does an enterprise manage data? Share the experience summary of four aspects of data governance
Unity3d learning notes
Jesd204b clock network
抽丝剥茧C语言(高阶)数据的储存+练习
C language (high-level) data storage + Practice
L'étape avancée du pointeur de langage C (haut de gamme) pour l'enroulement des cocons
虚拟机的作用
At the age of 20, I got the ByteDance offer on four sides, and I still can't believe it
Cloud backup project
Non empty verification of collection in SQL
随机推荐
PostgreSQL source code (60) transaction system summary
Paranoid unqualified company
Abnova membrane protein lipoprotein technology and category display
Precise space-time travel flow regulation system - ultra-high precision positioning system based on UWB
Test of transform parameters of impdp
How can brand e-commerce grow against the trend? See the future here!
Non empty verification of collection in SQL
Fast quantitative, abbkine protein quantitative kit BCA method is coming!
Communication between non parent and child components
【mysqld】Can't create/write to file
考研失败,卷不进大厂,感觉没戏了
Abnova circulating tumor DNA whole blood isolation, genomic DNA extraction and analysis
Flexible layout (II)
Select the product attribute pop-up box to pop up the animation effect from the bottom
freeswitch拨打分机号源代码跟踪
抽絲剝繭C語言(高階)數據的儲存+練習
Wechat applet full stack development practice Chapter 3 Introduction and use of APIs commonly used in wechat applet development -- 3.10 tabbar component (I) how to open and use the default tabbar comp
Basic process of network transmission using tcp/ip four layer model
Lm11 reconstruction of K-line and construction of timing trading strategy
ViewModelProvider. Of obsolete solution