Scala でのスレッドスリープメソッド

Suraj P 2023年1月30日
  1. Scala のスレッド
  2. Scala の Thread.sleep()
Scala でのスレッドスリープメソッド

まず、この記事では、Scala でスレッドがどのように実装されているかを学びます。次に、Scala で Sleep メソッドがどのように機能するかを見ていきます。

Scala のスレッド

スレッドは軽量のサブプロセスであり、必要なスペースが少なく、実行速度が速くなります。マルチスレッド環境では、多くのスレッドが同時に実行され、それぞれが異なるタスクを実行します。これにより、CPU 使用率とリソースが向上し、スループットが向上します。

Scala では、スレッドは 2つの方法で作成されます。1つは Runnable インターフェイスの拡張であり、もう 1つは Thread クラスの拡張です。

方法 1:Runnable インターフェイスの拡張

Runnable インターフェイスを拡張し、run()メソッドをオーバーライドするクラスを作成します。

コード例:

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
        }
    }
}

出力:

Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Thread 5 is running.

方法 2:Thread クラスを拡張する

Thread クラスを拡張し、run()メソッドをオーバーライドするクラスを作成します。

コード例:

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
        }
    }
}

出力:

Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Thread 5 is running.

Scala の Thread.sleep()

Thread.sleep(time) は、スレッドを特定の時間スリープさせるために使用されます。ミリ秒単位の時間は、引数として渡されます。

構文:

Thread.sleep(1000)
Here the thread would sleep for 1000 milliseconds

サンプルコード:

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()
            
        }
    }
}

出力:

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.
著者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub