Является ли выполнение параллельным

Все привет. НЕмного затупил с конкурентным заполнением мапы. Нашел в итернете, как сделать конкурентное заполнение мапы безопасным для данных, но вот хз как проверить, что запись происходит именно конкурентно а не последовательно. Есть ли способ это выяснить. Вот код

package main

import (
    "log"
    "sync"
)

func Inserting(data []int) map[int]int {
    mp := make(map[int]int)
    mutex := sync.Mutex{}
    waitgroup := sync.WaitGroup{}
    lendata := len(data)
    waitgroup.Add(lendata)
    for i := 0; i < lendata; i++ {
        go func(i int) {
            mutex.Lock()
            mp[i] = data[i]
            mutex.Unlock()
            waitgroup.Done()
        }(i)
    }
    waitgroup.Wait()
    return mp
}

func main() {
    slc := make([]int, 0)
    slc = append(slc, 12, 43, 12, 76, 54, 90, 22, 33, 12)
    log.Println(Inserting(slc))
}

UPD: Итоговые вариант такой

package main

import (
    "sync"
)

type Mapping struct {
    sync.RWMutex
    mp map[int]int
}

func Init() *Mapping {
    mp := make(map[int]int)
    return &Mapping{
        mp: mp,
    }
}

func (m *Mapping) Set(data []int, wg *sync.WaitGroup) {
    lendata := len(data)
    wg.Add(lendata)
    for i := 0; i < lendata; i++ {
        go func(i int) {
            m.Lock()
            defer m.Unlock()
            m.mp[i] = data[i]
            wg.Done()
        }(i)
    }
}

func make_slice_and_insert_into_map() map[int]int {
    slc := make([]int, 0)
    slc = append(slc, 4333333, 544545, 65765757, 23423423, 6567567456)
    wg := sync.WaitGroup{}
    mp := Init()
    mp.Set(slc, &wg)
    wg.Wait()
    return mp.mp
}

Ответы (0 шт):