Thread-Sleep-Methode in Scala
In diesem Artikel erfahren Sie zunächst, wie Threads in Scala implementiert werden. Dann werden wir sehen, wie die Sleep-Methode in Scala funktioniert.
Threads in Scala
Threads sind leichtgewichtige Unterprozesse, die weniger Speicherplatz beanspruchen und schneller ausgeführt werden. In einer Umgebung mit mehreren Threads werden viele Threads gleichzeitig ausgeführt, wobei jeder eine andere Aufgabe ausführt. Dies führt zu einer besseren CPU-Auslastung und Ressourcen und im Gegenzug zu einem besseren Durchsatz.
In Scala werden Threads auf zwei Arten erstellt: Erstens durch Erweitern der Runnable
-Schnittstelle und zweitens durch Erweitern der Thread
-Klasse.
Methode 1: Erweitern der lauffähigen Schnittstelle
Wir erstellen eine Klasse, die das Runnable-Interface erweitert und die Methode run() überschreibt.
Beispielcode:
class test extends Runnable
{
override def run()
{
println("Thread "+Thread.currentThread().getName()+" is running.")
}
}
object MyClass {
def main(args: Array[String]) {
for(i<- 1 to 5)
{
var obj = new Thread(new test()) //creating the object
obj.setName(i.toString())
obj.start() //starts the thread
}
}
}
Ausgabe:
Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Thread 5 is running.
Methode 2: Erweitern der Thread-Klasse
Wir erstellen eine Klasse, die die Klasse Thread erweitert und die Methode run()
überschreibt.
Beispielcode:
class test extends Thread
{
override def run()
{
println("Thread "+Thread.currentThread().getName()+" is running.")
}
}
object MyClass {
def main(args: Array[String]) {
for(i<- 1 to 5)
{
var obj = new Thread(new test()) //creating the object
obj.setName(i.toString())
obj.start() //starts the thread
}
}
}
Ausgabe:
Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Thread 5 is running.
Thread.sleep()
in Scala
Thread.sleep(time)
wird verwendet, um einen Thread für eine bestimmte Zeit in den Ruhezustand zu versetzen. Als Argument wird ihm die Zeit in Millisekunden übergeben.
Syntax:
Thread.sleep(1000)
Here the thread would sleep for 1000 milliseconds
Beispielcode:
class test extends Thread
{
override def run()
{
var i = 0
println("Thread "+Thread.currentThread().getName()+" is running.")
for(i<-1 to 5)
{
Thread.sleep(1000) //will sleep the thread
}
}
}
object MyClass {
def main(args: Array[String]) {
for(i<- 1 to 5)
{
var obj = new Thread(new test()) //creating the object
var thread1 = new Thread(obj);
var thread2 = new Thread(obj);
thread1.setName("1")
thread2.setName("2")
thread1.start() //starts the thread
thread2.start()
}
}
}
Ausgabe:
Thread 1 is running.
Thread 2 is running.
Thread 1 is running.
Thread 2 is running.
Thread 1 is running.
Thread 2 is running.
Thread 1 is running.
Thread 2 is running.
Thread 1 is running.
Thread 2 is running.