多线程是同时使用多个线程的概念,它允许程序同时执行多个操作。
线程是轻量级的子进程,需要很少的内存才能执行。通用多线程程序由两个或多个并行运行的线程组成,以优化资源(多个CPU)的使用并提高程序的性能。
线程如何工作?
线程是轻量级进程,其寿命定义为从其开始到终止的时间。在其生命周期中,线程来自不同的阶段。他们是,
new → runnable → running → terminated
有时线程也进入阻塞状态。
要在Scala中创建线程,需要定义一些类和方法。Scala中的线程是使用两种机制创建的,
扩展Thread 类
扩展可 Runnable 接口
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
使用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