Исходники и презентации

This commit is contained in:
2025-05-23 07:26:39 +03:00
parent aa948179d5
commit 02d8430a3a
514 changed files with 13773 additions and 0 deletions

View File

@ -0,0 +1,42 @@
package main
import "sync"
// Need to show solution
var resource1 int
var resource2 int
func normalizeResources(lhs, rhs *sync.Mutex) {
lhs.Lock()
rhs.Lock()
// normalization
rhs.Unlock()
lhs.Unlock()
}
func main() {
var mutex1 sync.Mutex
var mutex2 sync.Mutex
wg := sync.WaitGroup{}
wg.Add(1000)
for i := 0; i < 500; i++ {
go func() {
defer wg.Done()
normalizeResources(&mutex1, &mutex2)
}()
}
for i := 0; i < 500; i++ {
go func() {
defer wg.Done()
normalizeResources(&mutex2, &mutex1)
}()
}
wg.Wait()
}