// Находим максимальное четное число
package main
import "fmt"
func main() {
var max int
for i := 1000; i > 0; i-- {
go func() {
if i%2 == 0 && i > max {
max = i
}
}()
}
fmt.Printf("Максимум равен %d", max)
}
func maxEvent(n, workers int) int {
var wg sync.WaitGroup
results := make(chan int, workers)
jobs := make(chan int, workers)
for w := 0; w < workers; w++ {
wg.Add(1)
go func() {
defer wg.Done()
localMax := -1
for num := range jobs {
if num%2 == 0 && num > localMax {
localMax = num
}
}
result <- localMax
}()
}
go func() {
for i := 1; i <= n; i++ {
jobs <- i
}
close(jobs)
}()
go func() {
wg.Wait()
close(results)
}()
globalMax := -1
for localMax := range results {
if localMax > globalMax {
globalMax = localMax
}
}
return globalMax
}