Scala中的多线程

Scala多线程

多线程是同时使用多个线程的概念,它允许程序同时执行多个操作。

线程是轻量级的子进程,需要很少的内存才能执行。通用多线程程序由两个或多个并行运行的线程组成,以优化资源(多个CPU)的使用并提高程序的性能。

线程如何工作?

线程是轻量级进程,其寿命定义为从其开始到终止的时间。在其生命周期中,线程来自不同的阶段。他们是,

new → runnable → running → terminated

有时线程也进入阻塞状态。

Scala中的线程

要在Scala中创建线程,需要定义一些类和方法。Scala中的线程是使用两种机制创建的,

  1. 扩展Thread 类

  2. 扩展可 Runnable 接口

1)创建一个扩展Thread类的线程

thread类是一个内置的Scala类,它被扩展以创建线程。它有run()方法,该方法被高估了,无法运行side对象。

要创建线程,我们创建此类的对象,然后调用start()方法,该方法本身也会调用run()方法。

示例

class MyThread extends Thread 
{ 
    override def run(){ 
        println("Hello, This is Thread " + Thread.currentThread().getName() ) 
    } 
} 
    
object myObject { 
    def main(args: Array[String]){ 
        for (x <- 1 to 3){ 
            var th = new MyThread() 
            th.setName(x.toString()) 
            th.start() 
        } 
    } 
}

输出结果

Hello, This is Thread 1
Hello, This is Thread 2
Hello, This is Thread 3

2)使用可运行接口创建线程

使用runnable接口创建线程以创建将实现runnable接口并覆盖其run()方法以运行线程的类。创建一个红色的Devil,使它成为类的对象,然后使用该对象,调用将启动线程的start方法,然后自动调用 运行线程的run()方法。

下面的示例代码显示了我们如何使用可运行接口创建线程:

class MyThread extends Runnable{ 
    override def run(){ 
        println("Hello, This is Thread " + Thread.currentThread().getName() )
    } 
} 

object myClass{ 
    def main(args: Array[String]){ 
        for (x <- 1 to 3){ 
            var newThread = new Thread(new MyThread()) 
            newThread.setName(x.toString()) 
            newThread.start() 
        } 
    } 
}

输出结果

Hello, This is Thread 1
Hello, This is Thread 2
Hello, This is Thread 3