Top

Concurrent

The coroutine

uses the go keyword followed by a function call, you can put the execution process of this function in another coroutine (newbies can be roughly understood as new processes) go func () ( sleep ( 3); // wait for 3 seconds print ("Inside!"); } () Print ("Outside")

multi-coroutine concurrent task

If you have a series of tasks, and the parameters of the task are placed an inner array, the array asyncMap method can help you perform these tasks concurrently var Start = now (); var RES = [. 1, 2,. 3,. 4] .asyncMap (E => { SLEEP ( 3); // If calculating e * e is a behavior that takes 3 seconds return e * e; }, 4); // 4 concurrent print (fmt.Sprintf ("Cost time% v, Result:% v ", now (). Sub (start), res)); * Substitute the .asyncMap of the above example with.map to test the situation without concurrency *

Concurrent Lock

Concurrent map

Refer to map, such as // concurrent security map m = new(sync.Map)

block of code

by the following method can guarantee global concurrent scenarios to count only the content coroutine execution code, count default. 1 synchronized (lock, [count]) { // code content } where the lock parameter can be string type (recommended) or other serializable objects