Es Ruby de un solo subproceso

MD Aminul Islam 21 junio 2023
  1. que es enhebrar
  2. ¿Es Ruby de un solo subproceso o de varios subprocesos?
  3. un ejemplo de un programa de subprocesos múltiples de Ruby
Es Ruby de un solo subproceso

Los subprocesos múltiples son un tema importante en los lenguajes de programación modernos. Pero debemos ejecutar un programa en un solo hilo para otros fines.

Este artículo discutirá el enhebrado en Ruby, junto con algunos ejemplos y explicaciones.

que es enhebrar

Un hilo es un bloque de códigos y comandos que se ejecutan en la CPU secuencialmente. Es un proceso ligero que se ejecuta en la CPU.

Si existen varios subprocesos en su programa, pueden compartir los mismos recursos, como variables y métodos. Threading hace un uso eficiente de la CPU y proporciona una ejecución más rápida.

¿Es Ruby de un solo subproceso o de varios subprocesos?

Sí, Ruby admite subprocesos múltiples. Le permite crear programación concurrente de dos o más partes (hilo) para usar la CPU de manera eficiente.

Si programa en Ruby con un solo hilo, se ejecutará a través de un núcleo de la CPU, por lo que si su CPU es de cuatro núcleos, los otros tres núcleos no participarán en la ejecución de su programa.

Entonces, el programa sin subprocesos o un solo subproceso es más lento que un programa multiproceso. Es por eso que los programas de un solo hilo no se recomiendan en la programación moderna.

Además, una aplicación web realiza más de una tarea simultáneamente. Por lo tanto, es muy difícil diseñar una aplicación web utilizando un solo hilo.

un ejemplo de un programa de subprocesos múltiples de Ruby

En nuestro ejemplo a continuación, ilustraremos cómo podemos usar subprocesos múltiples en un programa Ruby. Echa un vistazo al siguiente código de ejemplo.

def ThreadOne
   a = 0
   while a <= 3
      puts "Thread One"
      # Pause the execution
      sleep(1)
      # incrementing the value of b
      a = a + 1
   end
end

def ThreadTwo
   b = 0
   while b <= 3
       puts "Thread Two"
      # Pause the execution
      sleep(1)
      # incrementing the value of b
      b = b + 1
   end

end

# Creating thread with "ThreadOne()"
t1 = Thread.new{ThreadOne()}

# Creating thread with "ThreadTwo()"
t2= Thread.new{ThreadTwo()}

# wait until the first thread complete
t1.join

# wait until the second thread complete
t2.join

  puts "Process execution has been done!!!"

El propósito de cada línea ya se deja como comentarios. Después de ejecutar el programa Ruby anterior, obtendrá el siguiente resultado en su consola.

Thread One
Thread Two
Thread One
Thread Two
Thread One
Thread Two
Thread One
Thread Two
Process execution has been done!!!
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn