Super parcial Dic 2020 Problema 4

Super parcial Dic 2020 Problema 4

de Rodrigo Alain De La Vega Rodriguez -
Número de respuestas: 3

Buenas tardes! El link de parcial es https://eva.fing.edu.uy/pluginfile.php/77323/mod_folder/content/0/2020/SolucionSuperParcial202012.pdf?forcedownload=1

En la solución propuesta veo que para manejar lo que pide la letra respecto a:
"Los clientes que desean comprar cerveza deberán esperar en una única fila por orden de llegada. El primer vendedor libre atenderá al primero de la fila", hacen lo que se muestra en el código debajo.



Mi duda es; Que pasa si en vez de hacer una solución de esa forma lo que hago es que el manejador se fije que vendedor esta libre y se lo asigne al cliente que pidió que lo atendieran? Es una mala solución?
Según lo veo yo, el orden se seguiría manteniendo ya que el manejador le daría un vendedor libre al cliente y si viene otro cliente obtendría un vendedor libre distinto del que se le asigno al cliente anterior. No se si me explico pero el código que hice es el siguiente:


En caso que necesiten el código de cliente y vendedor para entender mi solución, se los dejo:


Gracias! Saludos

En respuesta a Rodrigo Alain De La Vega Rodriguez

Re: Super parcial Dic 2020 Problema 4

de Manuel Freire -
Hola,

No logré ver qué haría get_libre() pero en principio eso genera un problema dado que estás llamando una función adentro del accept (en el que ambos procesos están sincronizados) lo que salvo que haya un motivo que no estoy viendo estaría mal.

Saludos!
En respuesta a Manuel Freire

Re: Super parcial Dic 2020 Problema 4

de Rodrigo Alain De La Vega Rodriguez -
Manuel, buenos días. Lo de la función lo hice porque en una clase de practico se comento que ese tipo de funciones (un for que carga una bandera o algo del estilo) no es tan importante para maquetar la solución. En un parcial la hubiera implementado. 
Ahora, para que se entienda mejor la idea saque la función y lo hice de la "forma correcta".

Espero que ahora se entienda mejor, sino avísame y vuelvo a escribir.

Nuevo código


Gracias!
Saludos,
En respuesta a Rodrigo Alain De La Vega Rodriguez

Re: Super parcial Dic 2020 Problema 4

de Manuel Freire -
Hola,

Si hicieras una iteración así adentro del accept estaría mal ya que se está forzando a que los procesos estén sincronizados mientras se busca un vendedor libre en vez de solo cuando se hace la asignación.

Saludos!