Quiero encontrar una estructura de cola (un contenedor de datos) cuyos elementos deben ser primeros en entrar primero en salir. Es importante para mí que la estructura debe ser segura para subprocesos. Voy a usar este contenedor de datos como algo así como una tarea o conjunto de conexiones.¿Es posible usar el canal almacenado de Go como una cola segura para subprocesos?
Sé que un canal con búfer es seguro para subprocesos, pero me pregunto si funciona como FIFO, especialmente en una situación concurrente.
Y si es posible utilizar el canal almacenado como cola segura para subprocesos, ¿debo preocuparme por su eficacia?
Los canales son la respuesta. Hay pocas posibilidades de encontrar o escribir algo mejor que los canales para esa tarea. – Mostafa
Los canales son especialmente adecuados para colas de tareas, recursos compartidos, grupos de conexiones y similares. Tenga cuidado de no reproducir los patrones de un lenguaje basado en subprocesos ya que uno de los grandes avances del lenguaje Go es el mecanismo de canal de goroutine +. Asegúrese de entenderlo (es probable que pueda enviar una arquitectura o estrategia a SO). –
Esto es lo primero que pensé cuando supe sobre los canales en Go, ¡gracias por preguntar esto! – karysto