package queue_test import ( "context" "fmt" "sync" "time" "git.belvedersky.ru/queue" ) // Example_parallel демонстрирует работу нескольких воркеров. func Example_parallel() { type Task struct{ ID int } q := queue.NewQueue[Task](5) var mu sync.Mutex q.Register(func(t Task) { mu.Lock() fmt.Printf("Worker processed: %d\n", t.ID) mu.Unlock() time.Sleep(20 * time.Millisecond) }) ctx := context.Background() q.HandleParallel(ctx, 4) for i := range 3 { q.Produce(Task{ID: i}) } q.Shutdown(context.Background()) // Unordered output: // Worker processed: 0 // Worker processed: 1 // Worker processed: 2 }