当前位置:网站首页>2、 Concurrent and test notes youth training camp notes

2、 Concurrent and test notes youth training camp notes

2022-07-07 07:24:00 A low-key horse

Concurrent 、 Unit test course notes | Youth Camp notes

This is my participation 「 The third youth training camp - Back end field 」 The third part of note creation activities 1 Notes

Concurrent

Concurrency and parallelism

  • Concurrent : In a nuclear CPU Run in

  • parallel : In multi-core CPU Run in

Coroutines and threads

  • coroutines : User mode lightweight threads ,KB Level
  • Threads : Kernel mode , It can run multiple Synergetics ,MB Level

Co process communication

channel( Is it synchronized -> The efficiency of consumption and production varies )

image-20220508152652788

Lock( Concurrent security )

​ sync Under bag Mutex, Locking ensures concurrency security

WaitGroup

Method :

image-20220508152957961

structure :

image-20220508153020254

test

unit testing

  • The rules

  • assert( Example :assert.Equal() Method , Quickly compare and judge the test results )

  • coverage (image-20220508153706611)<===“–cover”

  • rely on ((mock Mechanism ) idempotent 、 Stable ==》 Pile driving )

    idempotent : Every test run should produce the same results as before

    Mockey Patch The scope of Runtime, Pass... At run time Go Of unsafe package , Replace the address of the function in memory with the address of the runtime function . Jump the implementation of the function or method to be driven .

The benchmark

Test the performance and CPU Loss of

ps: perform rand It takes a long time , because rand In order to ensure global randomness and concurrency security , Holds a global lock , Therefore, it is recommended to use a high-performance random number method fastrand, At the expense of certain sequence consistency .

Add

The difference between the two forms of login

One 、Cookie and Session

This is generally used for authentication when interacting with the client .

Two 、JWT+Token

No need to rely on some storage , Generally, the backend decrypts directly .

It usually lies in the server 、http If you interact , Use JWT+token

Message queuing application scenario

The main problem to be solved is isolation

Use scenarios : The two methods , If it's a strong dependence , It cannot be achieved in this way

If it is non strong dependency , Method A Is to release a message 、 event , Method B It is to receive and consume this event for asynchronous processing , In this case, use message queuing , Can play a decoupling function

Strong dependence , It cannot be achieved in this way

If it is non strong dependency , Method A Is to release a message 、 event , Method B It is to receive and consume this event for asynchronous processing , In this case, use message queuing , Can play a decoupling function

原网站

版权声明
本文为[A low-key horse]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207070339543196.html