Productor-consumidor: Sincronización con colas en Kotlin
[crayon-6a6196807c97f779531093/]
Este código implementa un patrón de productor-consumidor utilizando hilos en Kotlin. Explicación del código:
- Se crea una cola (
queue) que se utiliza para almacenar elementos. En este caso, se almacenan números enteros. - Se crea un hilo de productor (
producerThread) que agrega elementos a la cola. En este ejemplo, agrega los números del 1 al 5. - El hilo del productor sincroniza la cola y agrega elementos a ella. Después de agregar un elemento, simula un retraso con
Thread.sleep(1000)para simular la producción de elementos. - Se crea un hilo de consumidor (
consumerThread) que retira elementos de la cola. - El hilo del consumidor sincroniza la cola y verifica si está vacía. Si la cola está vacía, el consumidor entra en un estado de espera utilizando
queue.wait(). Esto permite que el consumidor espere hasta que el productor agregue elementos a la cola. - Cuando el productor agrega elementos y notifica al consumidor, el consumidor se despierta y retira elementos de la cola utilizando
queue.poll(). - Los hilos del productor y el consumidor se inician con
producerThread.start()yconsumerThread.start(). - Se espera a que ambos hilos terminen con
producerThread.join()yconsumerThread.join(). - Finalmente, se imprime «Fin del programa» cuando ambos hilos han terminado de ejecutarse.