Scala教程
Scala面向对象
Scala高级

Scala 线程方法

Scala 线程方法

线程类提供了各种处理线程状态的方法。您可以使用这些方法来控制线程的流量。
下表包含了Thread类的常用方法。
方法 说明
public final String getName() 它返回线程的名称。
public final int getPriority() 返回线程的优先级。
public Thread.State getState() 它返回这个线程的状态。这种方法是用来监控系统状态的,不是用来同步控制的。
public final boolean isAlive() 它测试这个线程是否还活着。如果一个线程已经启动并且还没有死亡,那么它就处于活动状态。
public final void join() throws InterruptedException 它等待线程死亡。
public void run() 如果该线程是使用单独的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,此方法不执行任何操作并返回。
public final void setName(String name) 用于设置线程名称。
public final void setPriority(int newPriority) 用于设置线程的优先级。
public static void sleep(long millis) throws InterruptedException 用于休眠执行线程指定的毫秒数。
public static void yield() 它会导致当前正在执行的线程对象暂时暂停并允许其他线程执行。

Scala 线程 sleep() 方法

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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4