Scala 多线程

Scala 多线程

一个由多个线程同时执行的过程被称为 多线程 它允许你独立执行多个任务。

什么是Scala中的线程

线程是轻量级的子进程,占用的内存较少。一个多线程程序包含两个或多个可以并发运行的线程,每个线程可以同时处理不同的任务,特别是当你的系统(计算机)有多个CPU时,可以优化利用可用资源。多线程被用来开发Scala中的并发应用程序。

Scala中的线程可以通过两种机制创建。

  1. 扩展线程类
  2. 扩展Runnable接口
  • 通过扩展Thread类来创建线程

我们创建一个扩展了线程类的类。这个类重写了Thread类中的run()方法。一个线程在run()方法中开始它的生命。我们创建一个新类的对象并调用start()方法来启动线程的执行。Start()方法调用了Thread对象的run()方法。

// Scala code for thread creation by extending 
// the Thread class 
class MyThread extends Thread 
{
    override def run()
    {
        // Displaying the thread that is running 
        println("Thread " + Thread.currentThread().getName() + 
                                        " is running.")
    }
} 
  
// Creating object
object GFG
{
    // Main method
    def main(args: Array[String])
    {
        for (x <- 1 to 5) 
        {
            var th = new MyThread()
                        th.setName(x.toString())
                            th.start()
        }
    }
}

输出 :

Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Thread 5 is running.
  • 通过扩展Runnable接口创建线程

我们创建一个新的类,它扩展了Runnable接口并覆盖了run()方法。然后我们实例化一个线程对象,将创建的类传递给构造函数。然后我们在这个对象上调用start()方法。

// Scala code for thread creation by implementing 
// the Runnable Interface 
class MyThread extends Runnable 
{
    override def run()
    {
        // Displaying the thread that is running 
        println("Thread " + Thread.currentThread().getName() +
                                            " is running.")
    }
} 
  
// Creating object
object MainObject
{
    // Main method
    def main(args: Array[String])
    {
        for (x <- 1 to 5) 
        {
            var th = new Thread(new MyThread())
                        th.setName(x.toString())
                            th.start()
        }
    }
}

输出 :

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

注意: 线程不需要按任何顺序运行。所有的线程都是并发运行的,相互独立。

Scala线程的生命周期

在Scala线程的创建和终止期间,线程经历了各种状态变化。这些构成了Scala线程的生命周期。它有以下五种状态。

  • New: 这是线程刚创建时的第一个状态。
  • 可运行(Runnable): 这是线程被创建后的状态,但线程还没有机会开始运行。
  • Running : 在这种状态下,线程正在执行它的任务。
  • Blocked(或Waiting): 这是线程仍然活着的状态,但由于等待输入或资源,目前无法运行。
  • Terminated : 当一个线程的run()方法退出时,它就处于死亡状态。

Scala  多线程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程