Scala线程方法使用例子和解释

本文概述

  • Scala线程sleep()方法
  • Scala线程join()方法示例
  • Scala setName()方法示例
  • Scala线程优先级示例
  • Scala线程多任务示例
线程类提供了各种方法来处理线程的状态。你可以使用这些方法来控制线程流。
下表包含Thread类的常用方法。
Method Description
公共最终字符串getName() 它返回线程的名称。
public final int getPriority() 它返回线程的优先级。
公共Thread.State getState() 它返回该线程的状态。此方法设计用于监视系统状态, 而不用于同步控制。
公共最终布尔值isAlive() 它测试此线程是否仍然存在。如果线程已经启动但尚未死亡, 则该线程是活动的。
公共最终void join()抛出InterruptedException 等待线程死亡。
公共无效run() 如果此线程是使用单独的Runnable运行对象构造的, 则将调用该Runnable对象的run方法;否则, 将调用该方法。否则, 此方法不执行任何操作并返回。
公共最终无效setName(String name) 用于设置线程名称。
public final void setPriority(int newPriority) 它用于设置线程的优先级。
公共静态无效睡眠(长毫秒)引发InterruptedException 它用于使执行线程休眠指定的毫秒数。
公共静态空yield() 它使当前正在执行的线程对象暂时暂停并允许其他线程执行。
Scala线程sleep()方法【Scala线程方法使用例子和解释】sleep()方法用于使线程休眠指定的时间。作为参数需要花费毫秒的时间。
class ThreadExample extends Thread{ override def run(){ for(i< - 0 to 5){ println(i) Thread.sleep(500) } }}object MainObject{ def main(args:Array[String]){ var t1 = new ThreadExample() var t2 = new ThreadExample() t1.start() t2.start() } }

输出
0 0 1 1 2 2 3 3 4 4 5 5

Scala线程join()方法示例join()方法等待线程死亡。换句话说, join()方法用于保持当前正在运行的线程的执行, 直到指定线程完成执行为止。
class ThreadExample extends Thread{ override def run(){ for(i< - 0 to 5){ println(i) Thread.sleep(500) } }} object MainObject{ def main(args:Array[String]){ var t1 = new ThreadExample() var t2 = new ThreadExample() var t3 = new ThreadExample() t1.start() t1.join() t2.start() t3.start() } }

输出
0 1 2 3 4 5 0 0 1 1 2 2 3 3 4 4 5 5

Scala setName()方法示例在下面的示例中, 我们正在设置并获取线程名称。
class ThreadExample() extends Thread{ override def run(){ for(i< - 0 to 5){ println(this.getName()+" - "+i) Thread.sleep(500) } } }object MainObject{ def main(args:Array[String]){ var t1 = new ThreadExample() var t2 = new ThreadExample() var t3 = new ThreadExample() t1.setName("First Thread") t2.setName("Second Thread") t1.start() t2.start() } }

输出
First Thread - 0 Second Thread - 0 Second Thread - 1 First Thread - 1 Second Thread - 2 First Thread - 2 Second Thread - 3 First Thread - 3 Second Thread - 4 First Thread - 4 Second Thread - 5 First Thread - 5

Scala线程优先级示例你可以使用线程的预定义方法设置线程优先级。下面的示例设置线程的优先级。
class ThreadExample() extends Thread{ override def run(){ for(i< - 0 to 5){ println(this.getName()) println(this.getPriority()) Thread.sleep(500) } } } object MainObject{ def main(args:Array[String]){ var t1 = new ThreadExample() var t2 = new ThreadExample() t1.setName("First Thread") t2.setName("Second Thread") t1.setPriority(Thread.MIN_PRIORITY) t2.setPriority(Thread.MAX_PRIORITY) t1.start() t2.start() } }

输出
First Thread Second Thread 10 1 Second Thread 10 First Thread 1 Second Thread 10 First Thread 1 Second Thread 10 First Thread 1 Second Thread 10 First Thread 1 Second Thread 10 First Thread 1

Scala线程多任务示例以下示例通过使用多个线程来运行多个任务。此示例说明了如何在Scala中实现多任务。
class ThreadExample() extends Thread{ override def run(){ for(i< - 0 to 5){ println(i) Thread.sleep(500) } } def task(){ for(i< - 0 to 5){ println(i) Thread.sleep(200) } } }object MainObject{ def main(args:Array[String]){ var t1 = new ThreadExample() t1.start() t1.task() } }

输出
0 0 1 2 1 3 4 2 5 3 4 5

    推荐阅读