Ist Ruby Single-Threaded

MD Aminul Islam 21 Juni 2023
  1. Was ist Threading
  2. Ist Ruby Single-Threaded oder Multi-Threaded?
  3. ein Beispiel für ein Ruby-Multi-Threading-Programm
Ist Ruby Single-Threaded

Multithreading ist ein wichtiges Thema in modernen Programmiersprachen. Aber wir müssen ein Programm für andere Zwecke in einem einzigen Thread ausführen.

Dieser Artikel behandelt das Threading in Ruby zusammen mit einigen Beispielen und Erklärungen.

Was ist Threading

Ein Thread ist ein Block von Codes und Befehlen, die sequentiell auf der CPU ausgeführt werden. Es ist ein leichtgewichtiger Prozess, der auf der CPU ausgeführt wird.

Wenn in Ihrem Programm mehrere Threads vorhanden sind, können sie dieselben Ressourcen wie Variablen und Methoden gemeinsam nutzen. Threading nutzt die CPU effizient und sorgt für eine schnellere Ausführung.

Ist Ruby Single-Threaded oder Multi-Threaded?

Ja, Ruby unterstützt Multithreading. Es ermöglicht Ihnen die gleichzeitige Programmierung von zwei oder mehr Teilen (Thread) zur effizienten Nutzung der CPU.

Wenn Sie in Ruby mit einem einzelnen Thread programmieren, wird er über einen Kern der CPU ausgeführt. Wenn Ihre CPU also Quad-Core ist, sind die anderen drei Kerne nicht an der Ausführung Ihres Programms beteiligt.

Das Programm ohne Threading oder Single-Thread ist also langsamer als ein Multithread-Programm. Aus diesem Grund werden Single-Thread-Programme in der modernen Programmierung nicht empfohlen.

Außerdem führt eine Webanwendung mehr als eine Aufgabe gleichzeitig aus. Daher ist es sehr schwierig, eine Webanwendung mit einem einzigen Thread zu entwerfen.

ein Beispiel für ein Ruby-Multi-Threading-Programm

In unserem Beispiel unten zeigen wir, wie wir Multithread in einem Ruby-Programm verwenden können. Sehen Sie sich den folgenden Beispielcode an.

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!!!"

Der Zweck jeder Zeile ist bereits als Kommentar hinterlassen. Nachdem Sie das obige Ruby-Programm ausgeführt haben, erhalten Sie die folgende Ausgabe in Ihrer Konsole.

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