Answer the question
In order to leave comments, you need to log in
How to properly implement channels in Go?
Good evening. I really ask for help, for several days I can’t implement the program, the condition of which is:
Answer the question
In order to leave comments, you need to log in
Alternatively: here .
I tried to fulfill all the conditions of the assignment. Unfortunately, there is no word about the size of the queue in the task. I made it 2*N*P.
type Тележка chan Человек
тележки := make(chan Тележка,N)
for i:=0;i<N; i++ {
тележки <- make(chan Человек,P)
}
//очередь так сказать с запасом, всё равно больше чем P*N человек на аттракцион не влезет
людиВходящие := make(chan Человек,P*N)
людиВыходящие := make(chan Тележка,P*N)
go func() {
//ждем телегу, рассовываем по ней людей
//не стоять же им в очереди, пусть сразу в телегу садятся, если место есть =)
свободнаяТелега := <-тележки
for len(свободнаяТелега)!=cap(свободнаяТелега) {
свободнаяТелега <- <- людиВходящие
}
time.Sleep(T) //WHEEEE
for довольныйЧеловек := range свободнаяТелега {
людиВыходящие <- довольныйЧеловек
}
тележки <- свободнаяТелега
}()
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question