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

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,46 @@
package main
import (
"sync"
)
var actions int
var mutex sync.Mutex
var buffer chan struct{}
func consumer() {
for i := 0; i < 1000; i++ {
mutex.Lock()
actions++
<-buffer
mutex.Unlock()
}
}
func producer() {
for i := 0; i < 1000; i++ {
buffer <- struct{}{}
mutex.Lock()
actions++
mutex.Unlock()
}
}
func main() {
wg := sync.WaitGroup{}
wg.Add(2)
buffer = make(chan struct{}, 1)
go func() {
defer wg.Done()
consumer()
}()
go func() {
defer wg.Done()
producer()
}()
wg.Wait()
}